我正在學習編寫自己的接口,並遇到了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