Error del compilador CS0837
Es posible que el primer operando de un operador 'is' o 'as' no sea una expresión lambda, un método anónimo ni un grupo de métodos.
Puede que las expresiones lambda, los métodos anónimos y los grupos de métodos no se usen en el lado izquierdo de is o as.
Si el error está relacionado con el operador
is
, recuerde queis
toma un valor y un tipo y le indica si se puede convertir el valor en ese tipo mediante una conversión boxing, unboxing o de referencia. Como las expresiones lambda no son valores y no tienen conversiones boxing, unboxing o de referencia, las expresiones lambda no son candidatas parais
.Si el código hace un uso inadecuado de
as
, probablemente la corrección lo cambiará a una conversión.
El ejemplo siguiente genera el error 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;
}
}
}
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: