(8)C#枚举器和迭代器

1.枚举器和可枚举类型

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

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

        ​       

示例:

​ 

2)泛型IEnumerator<T>接口和IEnumerable<T>接口

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

​      

2.迭代器

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

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

                           

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

                    

3)将迭代器作为属性

posted @ 2020-08-07 17:40  代码吸血虫  阅读(73)  评论(0)    收藏  举报