pha*_*t0m 1 c# ienumerable yield terminology
这个yield return概念的官方名称究竟是什么?
public IEnumerable<T> Bar() {
...
yield return foo;
...
}
Run Code Online (Sandbox Code Playgroud)
我听说(读)它被称为:
迭代器不只是迭代某些东西的"东西"吗?A List<T> 是一个IEnumerable<T>,所以似乎也不合理.
这里有很多答案,谈论yield return使用这两个术语中的一个.
那么"发电机"怎么样?或者这只适用于你"凭空捏造价值",例如你不需要数据收集作为来源的Fibonacci数字?
作为非语言特定方式的一般概念,"生成器"可能是最常用的术语.如果我和不熟悉C#的人交谈,那就是我要用的.
该方法本身是C#规范术语中的迭代器.实现是一个迭代器块.
从C#4规范的第10.14节:
使用迭代器块(第8.2 节)实现的函数成员(第7.5 节)称为迭代器.
这是我在谈论C#时使用的术语.