【问题标题】:Why do generics often use T?为什么泛型经常使用 T?
【发布时间】:2009-03-15 20:50:13
【问题描述】:

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

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

甚至

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

【问题讨论】:

标签: generics naming-conventions


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我虽然是 T 表示“这太棒了!”
        • 我以为 2 点 4 点是 T。
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            T 表示类型

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

            【讨论】:

              【解决方案8】:

              我以为是 T 代表模板,因为它首先出现在 C++ 中。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2021-09-28
                • 2015-05-30
                • 1970-01-01
                • 2010-09-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多