为什么按语言规范,C#扩展方法不能使类型'foreachable'?

Han*_*ans 14 c# vb.net

foreach子句中使用类型作为集合时,类型需要有一个GetEnumerator方法,该方法返回一个MoveNext具有布尔结果和Current属性的函数的对象.通常这是通过实现IEnumerable来实现的.但是,这不是必需的.

在C#中,GetEnumerator应该在集合类型本身上定义.

在Vb.Net中,GetEnumerator 允许使用扩展方法进行改造.

为什么不在C#?

通过在Vb中改进.NET元组类找到.首先净,然后转换为C#.

示例代码:https://github.com/nicenemo/Noaber?files = 1