1

我传统上在 C# 中使用 yield 没有返回,例如:

IEnumerable<T> Foobar() {
   foreach( var foo in _stuff ) {
      yield foo;
   }
}

但在其他示例中,我看到它写为“yield return foo;”,请参阅:http: //msdn.microsoft.com/en-us/library/9k7k7cf0%28VS.80%29.aspx

有什么区别吗?

4

1 回答 1

9

C# 本身不允许yieldall - 只有yield returnyield break.

yield是一个上下文关键字,只能在迭代器块内识别,并且只能与returnor结合使用break

于 2009-11-06T03:29:43.463 回答