Błąd kompilatora CS0837
Pierwszy operand operatora "is" lub "as" może nie być wyrażeniem lambda, metodą anonimową lub grupą metod.
Wyrażenia lambda, metody anonimowe i grupy metod mogą nie być używane po lewej stronie obiektu lubjako.
Jeśli błąd obejmuje
is
operator, pamiętaj, żeis
przyjmuje wartość i typ i informuje, czy wartość może zostać wprowadzona do tego typu za pomocą odwołania, pola lub konwersji rozpakowej. Ponieważ wyrażenia lambda nie są wartościami i nie mają żadnych odwołań, boksu ani konwersji rozpętłania, lambdy nie są kandydatami dois
.Jeśli kod jest niewłaściwy
as
, korekta prawdopodobnie zmieni go na rzutowanie.
Poniższy przykład generuje 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;
}
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: