为什么泛型经常使用T?

时间:2008-12-17 08:53:09

标签: generics naming-conventions

在仿制药中使用'T'有什么理由吗?它是某种缩写吗?据我所知,一切正常。例如

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

甚至

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

8 个答案:

答案 0 :(得分:31)

T代表 T ype。但它实际上只是一种传统,没有什么可以阻止你使用其他名称。例如,通用词典使用<TKey, TValue>

如果您有一个类型参数,还有Microsoft guideline建议使用字母 T ,如果您有 T ,则建议使用描述性参数名称作为前缀超过一个。这样做可以为您的代码提供更加一致的感觉。

答案 1 :(得分:8)

T代表, 就像你说的一切都很好。但是把T放在那个位置会提醒你这是一般的类型。

答案 2 :(得分:7)

这只是一种简写,就像我常用于.NET中的接口一样,在其他环境中,C有时用于类(Delphi使用它,IIRC)。

一般来说,“T”本身意味着“此上下文中的单一类型参数”,如果您有多个类型参数,则它们会获得一个T前缀,例如: Dictionary<TKey, TValue>。它只是在您阅读代码时显而易见,它是一个类型参数而不是特定的具体类型。

答案 3 :(得分:4)

哦,我会想到T for Thing:)

答案 4 :(得分:2)

由于C ++模板大多数时间都使用T,因此也可能有一些传统,当用于泛型编程时,泛型在功能上与C ++的模板类似。

答案 5 :(得分:1)

如果你的泛型类型代表一些特殊的东西,你可以使它更精确。通常在它前面添加T:IRepository<TEntity>, SomeCollection<TItem, TComparer> ..

答案 6 :(得分:0)

  

T for Type

此外,E也用于非常常见的Element。你是对的G也有效。

答案 7 :(得分:0)

我认为这是T for Template,因为它首先出现在C ++中。