Erro do Compilador CS0837
O primeiro operando de um operador "is" ou "as" não pode ser uma expressão lambda, um método anônimo ou um grupo de métodos.
Expressões lambda, métodos anônimos e grupos de métodos podem não ser usados no lado esquerdo do is ou as.
Se o erro envolver o operador
is
, lembre-se de queis
usa um valor e um tipo e informa se o valor pode ser feito nesse tipo por uma referência, boxe ou conversão de unboxing. Como lambdas não são valores e não têm conversões de referência, boxe ou unboxing, lambdas não são candidatos parais
.Se o código usar
as
incorretamente, a correção provavelmente será alterá-lo para uma conversão.
O exemplo a seguir gera o erro 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;
}
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: