C#中“yield”和“yield return”之间有什么区别(如果有的话)?

时间:2009-11-06 03:26:21

标签: c# yield yield-return

我传统上在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

有什么不同吗?

1 个答案:

答案 0 :(得分:8)

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

yield是一个上下文关键字,只能在迭代器块中识别,并且只能与returnbreak一起使用。