Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Il primo operando di un operatore "is" o "as" non può essere un'espressione lambda o un metodo anonimo.
The first operand of an "is" or "as" operator may not be a lambda expression or anonymous method.
Le espressioni lambda e i metodi anonimi non possono essere utilizzati sul lato sinistro di is o as.
Per correggere l'errore
Se l'errore riguarda l'operatore is, ricordare che is 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, pertanto non sono adatte per is.
Se il codice utilizza erroneamente as, la correzione probabilmente è l'impostazione su un cast.
Esempio
Nell'esempio seguente viene generato 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;
}
}
}