除了从返回或让函数完成到最后,它有什么不同吗?注意 VB.NET 没有yield break但要求函数用iterator关键字标记。
问问题
756 次
1 回答
3
谈到C#
,如果你想编写一个迭代器,如果源为 null 或为空,则不返回任何内容。这是一个例子:
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++;
}
于 2012-11-23T06:30:22.150 回答