2008-12-17 57 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++。

相关问题