Compiler Error CS0837
The first operand of an "is" or "as" operator may not be a lambda expression or anonymous method.
Lambda expressions and anonymous methods may not be used on the left side of is or as.
To correct this error
If the error involves the is operator, remember that is takes a value and a type and tells you whether the value can be made into that type by a reference, boxing, or unboxing conversion. Because lambdas are not values and have no reference, boxing, or unboxing conversions, lambdas are not candidates for is.
If the code misuses as, the correction is probably to change it to a cast.
Example
The following example generates 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;
}
}
}