黑马程序员技术交流社区

标题: 关于迭代器的问题 [打印本页]

作者: mdl    时间: 2013-6-13 18:46
标题: 关于迭代器的问题
话说这迭代器究竟是什么东东啊,不明白啊,都看了好几遍了
作者: 许庭洲    时间: 2013-6-13 18:50
1. 迭代器是可以返回相同类型的值的有序序列的一段代码。
2. 迭代器可用作方法、运算符或 get 访问器的代码体。
3. 迭代器代码使用 yield return 语句依次返回每个元素。yieldbreak 将终止迭代。
4. 可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在foreach 语句中被客户端代码调用,如下所示:foreach(int x in SampleClass.Iterator2){}。
5.  迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<(Of<(T>)>) 或 IEnumerator<(Of <(T>)>)。
6. 迭代器是 LINQ 查询中延迟执行行为的基础。
7. yield 关键字用于指定返回的一个或多个值。到达yield return 语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。
8.  迭代器对集合类特别有用,它提供一种简单的方法来迭代复杂的数据结构(如二进制树)。


作者: 甘斌斌    时间: 2013-6-13 19:17
用最直观的说法,迭代就是指循环,迭代器是指实现该循环的一种方式。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2