【问题标题】:What does the term TU stand for in a C# generic? [closed]TU 在 C# 泛型中代表什么? [关闭]
【发布时间】:2020-02-20 22:46:16
【问题描述】:

我偶尔会在返回类型的泛型方法中看到这一点,例如

public async Task<TU> ResolveAsync<T, TU>(T context, CancellationToken cancellationToken)

我只是好奇它代表什么。谷歌给我的只是“翻译单元”,但这似乎不对。

【问题讨论】:

  • T 按照惯例代表“类型参数”。 U就是U。它没有任何意义。它只不过是类型参数的占位符标记。
  • TU 只是一个标识符。如果你愿意,你可以把KPZQpfxSeUzI放在那里。
  • 类型参数,按照惯例,通常以T 开头,但并非必须如此。这里没有更深的含义。这不是首字母缩写词或缩写。
  • @Amy - 我认为 OP 建议 T 代表“类型参数”是令人困惑的。 T 确实经常用来表示一个泛型类型,但是说它代表某物给了它更多的意义而不是它的价值。
  • @Enigmativity 没错,这不是我想要交流的意思。我们在一些标识符前面加上一个字母来表明它们的用途。不过,现在编辑该评论为时已晚。

标签: c# .net generics


【解决方案1】:

TU 可能毫无意义。类型参数类似于函数参数并且具有标识符/名称。就像函数参数一样,它们不能具有相同的名称,这就是声明不是ResolveAsync&lt;T, T&gt; 的原因。 T 是任何 T 类型参数的常见做法。我不确定您的函数的库和上下文,但我确信 TU 可能没有任何意义,而添加 U 只是为了防止使用相同的标识符。

您可以从添加函数的角度来考虑它,该函数可能具有声明 int add(int a, int b) 此处 ab 没有任何意义,但用于引用两个不同的参数。如果它没有精确的标识符或通用约束,那么类型参数的名称可能并不重要。

我会看看 docs.microsoft.com 上的函数文档,或者如果你去声明看看 docstring / xml cmets,因为它可能会在&lt;typeparam&gt; 下说些什么.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2010-09-07
    相关资源
    最近更新 更多