Errore del compilatore CS0832

Aggiornamento: novembre 2007

Messaggio di errore

Una struttura ad albero dell'espressione non può contenere un operatore di assegnazione.
An expression tree may not contain an assignment operator.

Una struttura ad albero dell'espressione non mantiene lo stato della variabile o non ha alcun concetto di percorso di archiviazione.

Per correggere l'errore

  • Rimuovere l'operatore di assegnazione dall'espressione lambda o di query.

Esempio

Nel codice di esempio, come in tutte le espressioni lambda, x è solo un parametro di input passato per il valore. Non è possibile modificare il valore in una struttura ad albero dell'espressione. Può essere modificato in un'espressione lambda del delegato.

// cs0843.cs
using System;
using System.Linq;
using System.Linq.Expressions;

public class C
{
    public static int Main()
    {
        Expression<Func<int, int>> e = x => x += 5; // CS0843
        return 1;
    }
}