Поделиться через


Ошибка компилятора CS0832

Обновлен: Ноябрь 2007

Сообщение об ошибке

Дерево выражения не может содержать оператор присваивания.
An expression tree may not contain an assignment operator.

Дерево выражений не сохраняет состояние переменной. В нем даже не предусмотрено понятие места сохранения.

Исправление ошибки

  • Удалите оператор присвоения из лямбда-выражения или выражения запроса.

Пример

В этом примере кода показано лямбда-выражение, в котором x является лишь входным параметром, передаваемым по значению. Его значение нельзя изменить в дереве выражений. Его можно изменить в лямбда-выражении делегата.

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