ここでは、C# における yield return および yield break ステートメントの基本的な使用方法について掲載しています。
最近知りました。積極的に知識を吸収しようとしなければ、知らないことばかりです。反省。
スポンサーリンク
yield break ステートメント
下記では yield return ステートメントについての簡単なサンプルを実行しましたが、今回は途中で値の返却を中断してみます。
下記に示すのは、yield break ステートメントのサンプルコードです。詳細はサンプル内のコメントを参照ください。
private void button1_Click(object sender, EventArgs e)
{
foreach(int i in GetIntValues())
{
Console.WriteLine(i.ToString()); // 1
}
}
private IEnumerable<int> GetIntValues()
{
// リターンされる
yield return 1;
// 何らかの条件に合致したら以降の値を返却を中断する
if(true)
{
yield break;
// return;
/*
* 上記のように return 文で処理を中断することはできない。
* 次のコンパイルエラーが発生する
*
* CS1622
* 反復子から値を返すことができません。yield return ステートメントを使用して値を返すか、
* yield break ステートメントを使用して反復子を終了してください。
*/
}
// このサンプルでは次の値は呼び出し元にリターンされない
yield return 2;
}