(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)将迭代器作为属性











浙公网安备 33010602011771号