2008-12-17 149 views
9

在泛型中使用'T'有什麼理由嗎?它是某種縮寫嗎?據我所知,一切正常。例如爲什麼泛型經常使用T?

public G Say<G>(){ ... } 

甚至

public Hello Say<Hello>(){ ... } 
+0

在此處提問[what-does-t-mean-in-c?]​​(http://stackoverflow.com/questions/400314/what-does-t-mean-in-c?lq=1)。 – nawfal 2014-01-17 13:32:54

回答

29

T代表T ype。但這只是一個傳統,沒有什麼可以阻止你使用其他名字。例如,通用字典使用<TKey, TValue>

還有一個Microsoft guideline如果你有一個單一類型的參數,並與前綴描述參數名稱牛逼如果你有不止一個建議使用字母牛逼。這樣做可以在您的代碼中提供更一致的感受。

8

T代表類型,如 像你說的一切工作fine.But把噸那個地方提醒你,是通用型的。

4

哦,我有事情:)

+0

我雖然是「這完全是岩石!」的T。 – 2008-12-17 10:02:19

7

思想t將其就像我的速記通常用於.NET接口,而在其他環境中C的有時用於類(Delphi使用此,IIRC )。

通常,「T」本身意味着「在此上下文中的單一類型參數」,並且如果您有多個類型參數,則它們會得到T前綴,例如, Dictionary<TKey, TValue>。當你閱讀代碼時,它只是一個明顯的例子,它是一個類型參數,而不是具體的具體類型。

0

T代表類型

此外,E用於元素很常見了。你說得對,G也行得通。

2

也可能有一些傳統,因爲C++模板大部分時間都使用T,泛型在功能上與C++模板相似,用於泛型編程。

1

如果你的泛型類型代表了一些特別的東西,你可以把它更精確。通常有T前綴是:IRepository<TEntity>, SomeCollection<TItem, TComparer> ..

0

我認爲這是T代表模板,因爲它第一次出現在C++。

相關問題