在C#中的收益率突破
这个问题在这里已经有了答案:
谈论C#
,如果你想写一个迭代器,如果源为空或者为空,它将不返回任何内容。 这里是一个例子:
public IEnumerable<T> EnumerateThroughNull<T>(IEnumerable<T> source)
{
if (source == null)
yield break;
foreach (T item in source)
yield return item;
}
没有yield break
就不可能在迭代器中返回一个空集。 它还指定迭代器已结束。 您可以将yield break
作为不返回值的return语句。
int i = 0;
while (true)
{
if (i < 5)
yield return i;
else
yield break; // note that i++ will not be executed after this statement
i++;
}
链接地址: http://www.djcxy.com/p/54335.html
上一篇: yield break in c#