C# で「yield break;」は何をしますか? 質問する

C# で「yield break;」は何をしますか? 質問する

MSDN でこの構文を見ました:yield breakですが、何をするのか分かりません。誰か知っていますか?

ベストアンサー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");

この場合、関数を早期に終了したため、最後のステートメントは実行されません。

おすすめ記事