当定义接口时,"<>"是什么意思?

4

我正在学习编写自己的接口,并遇到了MSDN文章“接口(C#编程指南)”。一切都看起来很好,除了:<T>是什么意思或作用?

interface IEquatable<T>
{
    bool Equals(T obj);
}

1
T代表类型(Type),它是一个通用接口可以支持多种类型。 - Fosco
2个回答

21

意思是它是一个通用的接口。

您可以创建这样的接口:

public interface IMyInterface<T>
{
    T TheThing {get; set;}
}

而且你可以用不同的方式来实现它:

public class MyStringClass : IMyInterface<string>
{
    public string TheThing {get; set;}
}

就像这样:

public class MyIntClass : IMyInterface<int>
{
    public int TheThing {get; set;}
}

非常感谢。为什么要使用 T? - m.edmondson
@eddy556:这只是一种约定 - T 用于表示“任何类型T” - 然而,有时你会看到其他的东西(例如:Dictionary<TKey,TValue>等) - Reed Copsey
“T”只是一种命名约定,因为通用参数名称引用了一个类型。你可以给它起任何你想要的名字,但是由于以“I”开头命名接口是一种约定,所以命名通用类型参数以“T”开头也是一种约定。在上面的例子中,它也可以被命名为“TTheThing”或类似的名称。 - Klaus Byskov Pedersen

0

这是一种参数化类型,意味着您可以为任何类型重复使用IEquatable... 在“运行时”(但不完全是),您可以使用String、Animal、Dog等类型替换T。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接