コンパイラ エラー 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() { }
}