11

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

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

甚至

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

8 回答 8

32

T 代表类型。但这实际上只是一种传统,没有什么可以阻止您使用其他名称。例如,通用字典使用<TKey, TValue>.

还有一个Microsoft 指南,如果您有一个类型参数,建议使用字母T ,如果您有多个类型参数,则在描述性参数名称前加上T。这样做将在您的代码中提供更一致的感觉。

于 2008-12-17T09:02:36.550 回答
8

T 代表类型,就像你说的一切正常。但是把 T 放在那个地方会提醒你这是泛型类型。

于 2008-12-17T08:56:17.827 回答
7

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

通常,“T”本身的意思是“在这个上下文中的单个类型参数”,如果你有多个类型参数,它们会得到一个 T 前缀,例如Dictionary<TKey, TValue>。当您阅读代码时,很明显它是类型参数而不是特定的具体类型。

于 2008-12-17T08:58:25.170 回答
4

哦,我会认为 T 代表事物 :)

于 2008-12-17T08:58:06.887 回答
2

也可能有一些传统,因为 C++ 模板大部分时间都使用 T,当用于泛型编程时,泛型在功能上与 C++ 的模板相似。

于 2008-12-17T10:03:36.833 回答
1

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

于 2008-12-17T10:14:04.533 回答
0

T 代表类型

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

于 2008-12-17T08:58:56.743 回答
0

我认为那是模板的 T,因为它首先出现在 C++ 中。

于 2009-03-15T12:50:13.880 回答