foreach小结
学习C#语言已经有很长一段时间了,但是对foreach还真的不是那么的彻底了解, 最近静下心来看C#高级编程,看到第五章foreach时才真正下意识的了解foreach。
假设现有一个Micgles数组用我们惯用的foreach很容易就写出来:
foreach(Micgle item in Micgles)
{
Console.WriteLine(item);
}
这个代码我想每个懂C#语言的都懂,但是foreach语句其实是不会解析为IL代码中的foreach的。
C#编译器会把它转化为IEnumerable接口的方法和属性。 其实上面的代码被解析为:
IEnumerator enumerator=Micgles.GetEnumerator();
while(enumerator.MoveNext())
{
Micgle micgle=enumerator.Current as Micgle;
Console.WriteLine(micgle);
}
这下才真的了解foreach了,做个记号。