C#_迭代器
What

迭代器(Iterator)又称光标(Cursor)
提供一个方法顺序访问一个聚合对象的各个元素而不暴露内部标识
无需关心对象的内存分配的实现细节
用foreach来实现迭代器遍历,会默认调用对象实现的对应接口方法,只要该方法即可。
基本实现
【IEnumberable】方法执行后得到IEnumerator对象的MoveNext方法,方法的返回值为bool类型,为是否举行执行包裹的逻辑。
1.实现一个int类型的cursorpos对象默认赋值为-1,表示可以得到数据的位置。
2.实现一个返回值为object对象的Current方法,返回对应的访问对象。
3.实现一个无返回值的Reset方法,重新设置cursorpos的位置为-1;
【IEnumerator】实现该方法返回当前对象即可this
语法糖实现
【IEnumerable】实现返回值为Enumerator的GetEnumerator方法,方法体中for遍历访问,使用yield return语法糖返回对应索引。本质还是实现里基本方法,语言自己会自己实现处理
泛型类的实现也是和b的实现基本一样
实现接口:IEnumerator,IEnumberable
引用:using System.Collections

Why

1.为开发人员提供便利

How
