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了,做个记号。

 

原文:http://www.yuqicook.com/post/2010111704.aspx

posted @ 2010-11-17 21:26  yuqicook  阅读(286)  评论(0编辑  收藏  举报