欢迎光临散文网 会员登陆 & 注册

C#_迭代器

2022-02-13 10:27 作者:Pan_ana  | 我要投稿
  • What

  1. 迭代器(Iterator)又称光标(Cursor)

  2. 提供一个方法顺序访问一个聚合对象的各个元素而不暴露内部标识

  3. 无需关心对象的内存分配的实现细节

  4. 用foreach来实现迭代器遍历,会默认调用对象实现的对应接口方法,只要该方法即可。

    1. 基本实现

      1. 【IEnumberable】方法执行后得到IEnumerator对象的MoveNext方法,方法的返回值为bool类型,为是否举行执行包裹的逻辑。

        1.实现一个int类型的cursorpos对象默认赋值为-1,表示可以得到数据的位置。

        2.实现一个返回值为object对象的Current方法,返回对应的访问对象。

        3.实现一个无返回值的Reset方法,重新设置cursorpos的位置为-1;

      2. 【IEnumerator】实现该方法返回当前对象即可this

    2. 语法糖实现

      1. 【IEnumerable】实现返回值为Enumerator的GetEnumerator方法,方法体中for遍历访问,使用yield return语法糖返回对应索引。本质还是实现里基本方法,语言自己会自己实现处理

    3. 泛型类的实现也是和b的实现基本一样

  5. 实现接口:IEnumerator,IEnumberable

  6. 引用:using System.Collections

  • Why

1.为开发人员提供便利

  • How


C#_迭代器的评论 (共 条)

分享到微博请遵守国家法律