CS0837 de erro do compilador
Mensagem de erro
O primeiro operando de um "é" ou "sistema autônomo" operador não pode ser uma expressão lambda ou um método anônimo.
Métodos anônimo e expressões lambda não podem ser usados no lado esquerdo da é or sistema autônomo.
Para corrigir este erro
Se o erro envolve o is operador, lembre-se de que is obtém um valor e um tipo e informa se o valor pode ser transformado em desse tipo por uma referência de conversão boxing e conversão conversão unboxing conversão. Como lambdas não são valores e não têm nenhuma referência, conversões conversão boxing e conversão conversão unboxing, lambdas não são candidatos para is.
Se o código misuses as, a correção provavelmente para alterá-lo para a projeção.
Exemplo
O exemplo a seguir gera 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;
}
}
}