小编典典

"yield break" 是什么意思?在 C# 中做?

all

我在 MSDN: 中看到过这种语法yield break,但我不知道它的作用。有人知道吗?


阅读 93

收藏
2022-03-08

共1个答案

小编典典

它指定迭代器已经结束。您可以将其yield break视为return不返回值的语句。

例如,如果您将函数定义为迭代器,则函数的主体可能如下所示:

for (int i = 0; i < 5; i++)
{
    yield return i;
}

Console.Out.WriteLine("You will see me");

请注意,循环完成所有循环后,将执行最后一行,您将在控制台应用程序中看到该消息。

或者像这样yield break

int i = 0;
while (true)
{
    if (i < 5)
    {
        yield return i;
    }
    else
    {
        // note that i++ will not be executed after this
        yield break;
    }
    i++;
}

Console.Out.WriteLine("Won't see me");

在这种情况下,最后一条语句永远不会执行,因为我们提前离开了函数。

2022-03-08