【发布时间】:2012-06-26 02:35:03
【问题描述】:
foreach 究竟是如何在 C# 中实现的?
我想象它的一部分看起来像:
var enumerator = TInput.GetEnumerator();
while(enumerator.MoveNext())
{
// do some stuff here
}
但是我不确定到底发生了什么。每个周期使用什么方法返回enumerator.Current?它是返回 [for each cycle] 还是需要匿名函数或其他东西来执行 foreach 的主体?
【问题讨论】:
-
基本上,
// do some stuff here被替换为foreach循环“之前”编译的内部。 (或者更确切地说,编译器生成等效的字节码。) -
不是真正的链接 question 的副本。只有标题远程匹配,但正文要求完全不同。
标签: c# foreach language-implementation language-specifications