【发布时间】:2009-03-15 20:50:13
【问题描述】:
在泛型中使用“T”有什么理由吗?它是某种缩写吗?据我所知,一切正常。例如
public G Say<G>(){ ... }
甚至
public Hello Say<Hello>(){ ... }
【问题讨论】:
-
这里也问过what-does-t-mean-in-c?。
标签: generics naming-conventions
在泛型中使用“T”有什么理由吗?它是某种缩写吗?据我所知,一切正常。例如
public G Say<G>(){ ... }
甚至
public Hello Say<Hello>(){ ... }
【问题讨论】:
标签: generics naming-conventions
T 代表 T 类型。但这实际上只是一种传统,没有什么可以阻止您使用其他名称。例如,通用字典使用<TKey, TValue>。
还有一个Microsoft guideline,如果你有一个单一的类型参数,建议使用字母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 用于 Element 也很常见。你是对的 G 也有效。
【讨论】:
我以为是 T 代表模板,因为它首先出现在 C++ 中。
【讨论】: