컴파일러 오류 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;
}
}
}