英語で読む

次の方法で共有


コンパイラ エラー CS0837

演算子 'is' または 'as' の最初のオペランドを、ラムダ式、匿名メソッド、またはメソッドのグループにすることはできません。

ラムダ式、匿名メソッド、およびメソッドのグループは、is または as の左側では使用できません。

このエラーを解決するには

  • is 演算子でこのエラーが発生する場合、 is が値と型を受け取り、参照変換、ボックス化変換、またはボックス化解除変換のいずれによって値をその型に変換できるかを通知することに注意してください。 ラムダは値ではなく、参照変換、ボックス化変換、またはボックス化解除変換を行わないため、 isの候補ではありません。

  • コードで asが誤って使用されている場合、キャストに変更するとエラーが修正されることがあります。

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

C#
// cs0837.cs
namespace TestNamespace
{
    public delegate void Del();

    class Test
    {
        static int Main()
        {
            bool b1 = (() => { }) is Del;   // CS0837
            bool b2 = delegate() { } is Del;// CS0837
            Del d1 = () => { } as Del;      // CS0837  
            Del d2 = delegate() { } as Del; // CS0837
            return 1;
        }
    }
}