コンパイラ エラー CS1626

更新 : 2007 年 11 月

エラー メッセージ

catch 句を含む try ブロックの本体で値を生成することはできません。

try ブロックに対応する catch 句が存在する場合、その try ブロックで yield ステートメントを使用することはできません。このエラーを回避するには、yield ステートメントを catch 句の外に記述します。

次の例では CS1626 エラーが生成されます。

// CS1626.cs
using System.Collections;

class C : IEnumerable
{
   public IEnumerator GetEnumerator()
   {
      try
      {
         yield return this;  // CS1626
      }
      catch
      {
        
      }
   }
}

public class CMain
{
   public static void Main() { }
}