Ошибка компилятора CS0837
Первый операнды оператора is или as не может быть лямбда-выражением, анонимным методом или группой методов.
Лямбда-выражения, анонимные методы и группы методов не могут использоваться в левой части или как.
Если ошибка включает оператор
is
, учтите, чтоis
принимает значение и тип и пытается преобразовать значение к этому типу с помощью ссылки, упаковки-преобразования или распаковки-преобразования. Так как лямбда-выражения не являются значениями и к ним неприменимы ссылки, упаковки-преобразования и распаковки-преобразования, лямбда-выражения не являются кандидатами для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;
}
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: