公共列表<(Of<(<'>)>)> .. :: ..枚举器?

时间:2010-10-12 17:12:37

标签: c# generics syntax methods signature

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

他们说C#方法签名是:

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

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

public List<T>.Enumerator GetEnumerator()

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

编辑:嗯,我想如果没有人看过这种语法,那么MSDN文档只是有点儿麻烦,就是这样。

2 个答案:

答案 0 :(得分:1)

MSDN使用一些代码生成来为所有不同的语言提供该签名,这看起来像是该代码中的一个错误,它会忘记考虑实际语言并输出所有语法 - 每个语句都可以存在与某种语言中的这种返回类型的预期语法相匹配(尽管如此,我不完全确定撇号的来源)。

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

我不知道他们是否经常会自动重新生成,但如果他们这样做,它很可能很快就会自行解决。如果没有,您可以在社区内容部分留言。

答案 1 :(得分:0)

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