Ошибка компилятора 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;
}
}