想知道为什么C#正朝着更多基于模式的编程而不是传统方式发展.
防爆.该foreach声明预计,循环源已经被称为魔术方法GetEnumerator,它返回它有几个魔术方法类似于对象MoveNext和Current,但他们并没有强制任何特定的接口?C#可以强制要求使用的类foreach应该实现,IEnumerable或者IEnumerable<T>对using语句执行,因为它期望在using语句中使用对象来实现IDisposable接口.
此外,我看到async/ await关键字也有类似的趋势....
当然必须有一个很好的理由,但是我理解编译器/ CLR需要"魔术方法"而不是依赖接口的原因似乎有点奇怪.