(8)C#基础知识_枚举器和迭代器

1.枚举器和可枚举类型

枚举器是指IEnumerator接口的类型,它可以依次返回并跟踪对应类型的位置。可枚举类型是指包含GetEnumerator函数(返回类型为枚举器IEnumerator)的类型,可枚举类型通常与foreach配合使用。

1)IEnumerator接口和IEnumerable接口(不继承IEnumerable接口,自己实现GetEnumerator函数也是可枚举类型)

        (8)C#基础知识_枚举器和迭代器_第1张图片       (8)C#基础知识_枚举器和迭代器_第2张图片

示例:

(8)C#基础知识_枚举器和迭代器_第3张图片 (8)C#基础知识_枚举器和迭代器_第4张图片

2)泛型IEnumerator接口和IEnumerable接口

对于非泛型枚举接口,current属性返回的是object类型,foreach需转换为实际类型才可使用,且存在类型安全的问题。而泛型枚举接口,current返回的是实际类型,使用方便且是类型安全的。

(8)C#基础知识_枚举器和迭代器_第5张图片      (8)C#基础知识_枚举器和迭代器_第6张图片

2.迭代器

从C#2.0开始,系统提供了 枚举器的方法,使用户非常方便的创建枚举器或枚举类型。枚举器是指使用yeild return的方法,创建创建枚举器或枚举类型的方法。

1)使用迭代器创建枚举器

                           (8)C#基础知识_枚举器和迭代器_第7张图片

2)使用迭代器创建枚举类型

                    (8)C#基础知识_枚举器和迭代器_第8张图片

3)将迭代器作为属性

(8)C#基础知识_枚举器和迭代器_第9张图片(8)C#基础知识_枚举器和迭代器_第10张图片

你可能感兴趣的:(C#图解教程总结)