Error del compilador CS0832

Actualización: noviembre 2007

Mensaje de error

Un árbol de expresión no puede contener un operador de asignación.
An expression tree may not contain an assignment operator.

Un árbol de expresión no mantiene el estado variable ni tiene ningún concepto de ubicación de almacenamiento.

Para corregir este error

  • Quite el operador de asignación de la expresión lambda o de consulta.

Ejemplo

En el código de ejemplo, como en todas las expresiones lambda, x es simplemente un parámetro de entrada que se pasa por valor. Su valor no se puede cambiar en un árbol de expresión. Se puede cambiar en una expresión lambda de delegado.

// 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;
    }
}