【C#】——迭代器和分部类(上)

本文介绍了迭代器的概念及其在C#中的实现方式。迭代器是一种用于遍历容器中元素的对象,能够简化对复杂数据结构的操作。文章通过实例展示了如何创建及使用迭代器。
  • 了解什么是迭代器
  • 掌握如何创建迭代器
  • 了解什么是分部类
  • 掌握如何使用分部类

一、什么是迭代器?

        迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。

1.迭代器是可以返回相同类型值的有序序列的一段代码;
2.迭代器可用作方法、运算符或get访问器的代码体;
3.迭代器代码使用yieldreturn语句依次返回每个元素,yield break将终止迭代;
4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){};
5.迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;
6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;
7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;
8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;
9.yield关键字用于指定返回的值。到达yieldreturn语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。 迭代器对集合类特别有用,它提供一种简单的方法来迭代不常用的数据结构(如二进制树)。

 迭代器是一种检查容器内元素并遍历元素的数据类型。   

二、迭代器的使用

创建迭代器最常用的方法是对 IEnumerator 接口实现 GetEnumerator 方法。

【例子】

创建一个 Windows 应用程序,向窗体中添加一个 RichTextBox 控件。创建一个名为 Family的类,其继承 IEnumerator 接口,该接口公开没拘束,该枚举数支持在非泛型集合上进行简单迭代。然后对 IEnumerator 接口实现 GetEnumerator 方法创建迭代器。最后在窗体的 Load 事件中使用 foreach 语句遍历 Family 类中的内容并输出。


评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值