在泛型中使用“T”有什么理由吗?它是某种缩写吗?据我所知,一切正常。例如
public G Say<G>(){ ... }
甚至
public Hello Say<Hello>(){ ... }
在泛型中使用“T”有什么理由吗?它是某种缩写吗?据我所知,一切正常。例如
public G Say<G>(){ ... }
甚至
public Hello Say<Hello>(){ ... }
T 代表类型。但这实际上只是一种传统,没有什么可以阻止您使用其他名称。例如,通用字典使用<TKey, TValue>
.
还有一个Microsoft 指南,如果您有一个类型参数,建议使用字母T ,如果您有多个类型参数,则在描述性参数名称前加上T。这样做将在您的代码中提供更一致的感觉。
T 代表类型,就像你说的一切正常。但是把 T 放在那个地方会提醒你这是泛型类型。
它只是一个简写,就像 I 通常用于 .NET 中的接口,而在其他环境中,C 有时用于类(Delphi 使用它,IIRC)。
通常,“T”本身的意思是“在这个上下文中的单个类型参数”,如果你有多个类型参数,它们会得到一个 T 前缀,例如Dictionary<TKey, TValue>
。当您阅读代码时,很明显它是类型参数而不是特定的具体类型。
哦,我会认为 T 代表事物 :)
也可能有一些传统,因为 C++ 模板大部分时间都使用 T,当用于泛型编程时,泛型在功能上与 C++ 的模板相似。
如果你的泛型类型代表一些特殊的东西,你可以让它更精确。通常在它前面加上 T : IRepository<TEntity>, SomeCollection<TItem, TComparer>
..
T 代表类型
此外,E 也用于非常常见的元素。你是对的 G 也有效。
我认为那是模板的 T,因为它首先出现在 C++ 中。