Generics 为什么泛型经常使用T?

Generics 为什么泛型经常使用T?,generics,naming-conventions,Generics,Naming Conventions,在泛型中使用“T”有什么原因吗?它是某种缩写吗?据我所知,一切正常。比如说 public G Say<G>(){ ... } public G Say(){…} 甚至 public Hello Say<Hello>(){ ... } public Hello Say(){…} T表示类型, 就像你说的,一切都很好。但是把T放在那个位置提醒你它是泛型的。哦,我会认为T是:)这只是一个简写,就像我在.NET中通常用于接口一样,在其他环境中,C有时用于类(Delphi使用

在泛型中使用“T”有什么原因吗?它是某种缩写吗?据我所知,一切正常。比如说

public G Say<G>(){ ... }
public G Say(){…}
甚至

public Hello Say<Hello>(){ ... }
public Hello Say(){…}
T表示类型,
就像你说的,一切都很好。但是把T放在那个位置提醒你它是泛型的。

哦,我会认为T是:)

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

通常,“T”本身意味着“本上下文中的单个类型参数”,如果您有多个类型参数,则它们会得到一个T前缀,例如
字典
。当您阅读代码时,它只是一个类型参数,而不是一个特定的具体类型

T表示类型


此外,E也用于非常常见的元素。你说得对,G也能工作。

T代表Type。但这只是一个传统,没有什么可以阻止你使用其他名字。例如,通用词典使用


还有一种建议,如果只有一个类型参数,则使用字母T,如果有多个类型参数,则在描述性参数名称前面加上T。这样做会提供一个更一致的代码。

也可能有一点传统,因为C++模板使用了大部分时间,而泛型在C++编程中的作用类似于泛型编程。

< P>如果泛型类型代表特殊的东西,你可以使它更精确。通常用T: <代码> IRepository,MeopeCopys< /Calp>…< /P> < P>我认为这是模板的模板,因为它最初出现在C++中。< /P>我虽然是“完全石头”的T,但我认为它在2是4的。