다음을 통해 공유


컴파일러 오류 CS0837

업데이트: 2007년 11월

오류 메시지

"is" 또는 "as" 연산자의 첫 번째 피연산자가 람다 식 또는 익명 메서드가 아닐 수 있습니다.
The first operand of an "is" or "as" operator may not be a lambda expression or anonymous method.

람다 식 및 익명 메서드는 is 또는 as의 왼쪽에서 사용할 수 없습니다.

이 오류를 해결하려면

  • 오류에 is 연산자가 포함되어 있으면 is가 값 및 형식을 사용하며 참조, boxing 또는 unboxing 변환을 사용하여 값을 해당 형식으로 만들지 있는지 여부를 표시합니다. 람다는 값이 아니며 참조, boxing 또는 unboxing 변환을 포함하지 않기 때문에 is에 적합하지 않습니다.

  • 코드에서 as를 잘못 사용하면 코드가 캐스트로 수정될 수 있습니다.

예제

다음 예제에서는 CS0837 오류가 발생하는 경우를 보여 줍니다.

// 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;
        }
    }
}