4.C#2.0之迭代器(未完成)
2021-06-23 14:06
标签:tor 数列 语句块 作用 声明 enum 表示 产生 类类型 4.1迭代器块 迭代器块就是产生值的有序序列的语句块,迭代器块通过一个/多个yield语句区别于常规语句: -yield return 语句产生迭代的下一个值 -yield break 语句指明迭代完成 迭代器块可以用做一个方法体、运算符体、访问器体,前提是对应函数成员的返回类型是枚举器接口之一/可枚举接口之一。 迭代器块在C#语法中不是独特的元素,它们在几个方面受限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已。当一个函数成员使用迭代器块实现时,该函数成员的正式参数列表指定任何ref/out参数都将导致编译时错误;return出现在迭代器块中也会导致编译时错误,但yield return语句是允许的;在迭代器块中包含不安全上下文也会导致编译时错误,即便迭代器声明在不安全上下文中,迭代器块总是定义为一个安全上下文。 4.1.1 枚举器接口 枚举器接口是System.Collections.IEnumerator接口和System.Collections.Generic.IEnumerator 4.1.2 可枚举接口 可枚举接口是System.Collections.IEnumerable接口和System.Collections.Generic.IEnumerable 4.1.3 yield类型 迭代器块生成具有相同类型的所有值的序列。该类型被称为迭代器块的yield类型: -通常用于实现返回IEnumerator/IEnumerable的函数成员的迭代器块的yield类型是object; -通常用于实现返回IEnumerator 4.1.4 this访问 在类的实例成员的迭代器块内,this表达式是值,该值的类型是类类型。在这个类型内可以采用这种用法,这个值就是成员被调用时对对象的引用。 在结构的实例成员的迭代器块内,this表达式被当作一个变量,该变量的类型就是结构类型。在这个结构内它可以采用这种用法,该变量表示一个成员被调用时的对应结构的一个拷贝。在结构实例成员的迭代器块内,this变量的行为就好像是结构类型的一个值参数。 4.2枚举对象 发 4.C#2.0之迭代器(未完成) 标签:tor 数列 语句块 作用 声明 enum 表示 产生 类类型 原文地址:https://www.cnblogs.com/dreamoffire/p/10192922.html