1、C#中的迭代器的作用 http://zhidao.baidu.com/question/110561432.html
2、详解C#迭代器 http://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html
3、msdn 迭代器 http://msdn.microsoft.com/zh-cn/library/dscyy5s0(VS.80).aspx
4、C# IEnumerable和IEnumerator的区别 http://www.cnblogs.com/shaosks/archive/2011/09/27/2193270.html
看了好几篇文章,也翻了翻《C#4.0图解教程》,还是觉得如下这段写的不错
《深入理解C# 第二版》中关于C#1.0 实现迭代其的代码如下:
我们发现这样手写来实现迭代器的功能代码量确实有写太大了,那么在C#2.0中就采用yield语句简单迭代
2、类型不安全。值被作为对象来枚举,所以可以是任何类型,这就消除了编译时的类型检测。
四、泛型接口 IEnumerator<T> IEnumerable<T>
IEnumerator<T>接口使用泛型来返回实际的类型,而不是object类型的引用
BlackAndWhite迭代器方法返回IEnumerator<string>,MyClaa类通过返回由BlackAndWhite返回的对象来实现GetEnumerator方法
(1)简单来说IEnumerable是声明式接口
public interface IEnumerable
(3)Collection要支持foreach进行遍历就必须实现IEnumerable,并以某种方式返回迭代器对象IEnumerator 。
联系客服