yield return
概念的官方名称究竟是什么?
public IEnumerable<T> Bar() {
...
yield return foo;
...
}
我已经听过(读)它被称为:
不是迭代器只是一些&#34;事情&#34;迭代什么? List<T>
是IEnumerable<T>
,所以看起来也不合理。
关于yield return
使用这两个术语中的一个来谈论这里的很多答案。
&#34;发电机&#34 ;?或者,这只适用于你凭空捏造价值的情况,例如: Fibonacci数字,您不需要将数据收集作为来源?
答案 0 :(得分:5)
作为非语言特定方式的一般概念,“生成器”可能是最常用的术语。如果我和不熟悉C#的人交谈,那就是我要用的。
该方法本身是C#规范术语中的迭代器。实现是迭代器块。
来自C#4规范的第10.14节:
使用迭代器块(第8.2节)实现的函数成员(第7.5节)称为迭代器。
这是我在专门讨论C#时使用的术语。
答案 1 :(得分:3)
它有用的原则是&#34; Coroutine&#34;。请参阅Wikipedia。
协同程序是概括子程序的计算机程序组件 允许多个入口点暂停和恢复执行 在某些地方。协同程序非常适合实现更多功能 熟悉的程序组件,如协作任务,迭代器, 无限列表和管道。
答案 2 :(得分:1)
它被称为迭代器,请查看此MSDN页面
迭代器是执行a的方法,get访问器或运算符 使用yield对数组或集合类进行自定义迭代 关键字