【问题标题】:public List<(Of <(<'T>)>)>..::..Enumerator?公共列表<(Of <(<'T>)>)>..::..枚举器?
【发布时间】:2010-10-12 17:12:37
【问题描述】:

我正在查看关于 List.GetEnumerator 的 MSDN docs

他们说 C# 方法签名是:

public List<(Of <(<'T>)>)>..::..Enumerator GetEnumerator()

我期待这个更简单的签名:

public List<T>.Enumerator GetEnumerator()

他们的签名是什么意思,所有的标点符号和“Of”关键字?

编辑:好吧,我想如果没有人见过这种语法,那么 MSDN 文档就是有点错误,仅此而已。

【问题讨论】:

  • 有违规文档的链接吗?
  • @Justin,是的,忘记添加链接了,抱歉。
  • 是的,这看起来很奇怪。那是什么??
  • +1 好问题。当我要求 Visual Studio 找出签名(从元数据中)时,它给出了您期望的签名。再说一次,我没有 .Net 4.0。
  • 看起来像一个错误,因为它在所有语言选项卡上都很明显。

标签: c# generics syntax methods signature


【解决方案1】:

MSDN 使用一些代码生成来为所有不同的语言提供该签名,这看起来像是该代码中的一个错误,它忘记考虑实际语言并只输出所有语法 - 那里的所有内容都可以与 some 语言中这种返回类型的预期语法相匹配(虽然,诚然,我不完全确定撇号的来源)。

在其他页面上可以看到相同的问题,例如非常相似的HashSet.GetEnumerator,但在其他页面上却没有,例如Queryable.AsQueryable,因此它们似乎不会立即生成所有内容,并且该错误是在这两个页面的生成之间引入/删除。 (由于我们不知道它们中的每一个有多新,我们无法猜测它是否已经修复。)

我不知道他们是否不时运行自动重新生成,但如果有,它可能很快就会自行修复。如果没有,您可以在社区内容部分发表评论。

【讨论】:

    【解决方案2】:

    看起来像 MSDN 中的一个错误。看看Queue是如何定义的:http://msdn.microsoft.com/en-us/library/7977ey2c(v=VS.90).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      相关资源
      最近更新 更多