我正在学习编写自己的接口,并遇到了MSDN文章“Interfaces (C# Programming Guide)”。一切似乎都很好,除了:什么< T>意思或做什么?<>在定义接口时意味着什么?
interface IEquatable<T>
{
bool Equals(T obj);
}
我正在学习编写自己的接口,并遇到了MSDN文章“Interfaces (C# Programming Guide)”。一切似乎都很好,除了:什么< T>意思或做什么?<>在定义接口时意味着什么?
interface IEquatable<T>
{
bool Equals(T obj);
}
这意味着它是一个generic接口。
您可以创建这样一个接口:
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的理由? – 2010-10-18 18:18:50
@ eddy556:这只是一个约定 - T被用来表示“任何类型的T” - 然而,有时你会看到其他东西(即:字典
'T'只是一个命名约定,因为通用参数名称引用_T_ype。你可以将它命名为或多或少,但是因为它是一个以I开始的接口命名约定,它也是一个约定,以T开头的泛型类型参数。在上面的例子中,被命名为“TTheThing”或其他类似的东西。 – 2010-10-18 18:22:16
这是一个参数类型意味着你可以重用IEquatable的任何类型...在“运行时”(但不完全),代替T,你可以使用字符串,动物,狗ecc ...
T是为类型,这意味着它是一个通用的接口,可以支持多种类型。 – Fosco 2010-10-18 18:10:28