我正在查看有关 List.GetEnumerator的MSDN 文档。
他们说 C# 方法签名是:
public List<(Of <(<'T>)>)>..::..Enumerator GetEnumerator()
我期待这个更简单的签名:
public List<T>.Enumerator GetEnumerator()
他们的签名是什么意思,所有的标点符号和“Of”关键字?
编辑:好吧,我想如果没有人见过这种语法,那么 MSDN 文档有点错误,仅此而已。
MSDN 使用一些代码生成来为所有不同的语言提供该签名,这看起来像是该代码中的一个错误,它忘记考虑实际语言并只输出所有语法 - 那里的所有内容都可以匹配到某种语言中这种返回类型的预期语法(尽管,诚然,我不完全确定撇号的来源)。
在其他页面上可以看到相同的问题,例如非常相似的HashSet.GetEnumerator,但在其他页面上却没有,例如Queryable.AsQueryable,因此它们似乎不会立即生成所有内容,并且引入/删除了错误在这两个页面的生成之间。(由于我们不知道它们中的每一个有多新,我们无法猜测它是否已经修复。)
我不知道他们是否不时运行自动重新生成,但如果他们这样做,它可能很快就会自行修复。如果没有,您可以在社区内容部分发表评论。
看起来像 MSDN 中的一个错误。看看队列是如何定义的:http: //msdn.microsoft.com/en-us/library/7977ey2c (v=VS.90).aspx