深入foreach工作方式
IEnumerable 接口负责使用foreach循环。
下面说明在foreach中,迭代集合collectionObject的过程如下:
1.调用collectionObject.GetEnumerator(),返回一个 IEnumerator引用。这个方法可以通过IEnumerable接口的实现代码来获得,但这是可选的。
2.调用所返回的IEnumerator接口的MoveNext()方法。
3.如果MoveNext()方法返回true,就使用IEnumerator接口的 Current属性获取对象的一个引用,用于foreach循环.
4.重复前面两步,直到MoveNext()方法返回false为止,此时循环停止。