次の方法で共有


コンパイラ エラー CS1626

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

try ブロックに関連付けられている catch 句がある場合、その try ブロックでは yield ステートメントを使用できません。 このエラーを回避するには、yield ステートメントを try/catch/finally ブロックの外に移動するか、catch ブロックを削除します。

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

// CS1626.cs  
using System.Collections;  
  
class C : IEnumerable  
{  
   public IEnumerator GetEnumerator()  
   {  
      try  
      {  
         yield return this;  // CS1626  
      }  
      catch  
      {  
  
      }  
      finally
      {

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