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");
この場合、関数を早期に終了したため、最後のステートメントは実行されません。