C#中的foreach语句不会解析为IL(中间代码)代码中的foreach语句,C#
编译器会把foreach语句转换为IEnumberable接口的方法和属性。
----类P的定义
public class P
{
public string Name { get; set; }
}
----数组初始化
P[] ps=new P[]{new P{Name="ronaldo"},
new P{Name="rivaldo"},
new P{Name="backham"}};
----下面是一条简单的foreach语句
foreach(var p in ps)
{
MessageBox.show(p.Name);
}
-----它会被解释为
System.Collections.IEnumerator enumerator = ps.GetEnumerator();
while (enumerator.MoveNext())
{
P o = enumerator.Current as P;
MessageBox.Show(o.Name);
}
本文介绍C#中foreach语句的工作原理,它不直接转化为IL代码中的foreach指令,而是被编译器转为对IEnumberable接口的调用。通过实例展示了如何遍历数组元素。
239

被折叠的 条评论
为什么被折叠?



