Errore del compilatore CS0837
Il primo operando di un operatore 'is' o 'as' non può essere un'espressione lambda, un metodo anonimo o un gruppo di metodi.
Le espressioni lambda, i metodi anonimi e i gruppi di metodi non possono essere usati sul lato sinistro di is o as.
Se l'errore riguarda l'operatore
is
, ricordare cheis
accetta un valore e un tipo e indica se il valore può essere assegnato a quel tipo da un riferimento, una conversione boxing o una conversione unboxing. Le espressioni lambda non sono valori e non hanno riferimenti, conversioni boxing o unboxing, quindi non sono adatte peris
.Se il codice usa erroneamente
as
, la correzione probabilmente è l'impostazione su un cast.
L'esempio seguente genera l'errore 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;
}
}
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: