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