我传统上在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。
有什么不同吗?
答案 0 :(得分:8)
C#本身不允许yield
- 只有yield return
和yield break
。
yield
是一个上下文关键字,只能在迭代器块中识别,并且只能与return
或break
一起使用。