迭代器关键字foreach和yield
原文:http://www.blogbus.com/jangmon-logs/36380490.html
总结:
- 能使用foreach的集合类都要继承自IEnumerable,实现GetEnumerator方法,返回一个枚举器。
- 枚举器Enumerator类包含集合类对象,通常有属性Current表示当前元素,MoveNext()移动到下一个元素。
- 编译器看到foreach之后,根据关键字重新生成代码。修改为while(enumerator.MoveNext()){obj = enumerator.Current;}
- 编译器看到yield之后,生产一个Enumerator类,MoveNext()方法里面用Switch语句对于yield后面的值返回。
posted on 2013-10-24 22:55 wlqsmiling 阅读(148) 评论(0) 编辑 收藏 举报