Ошибка компилятора CS1946Compiler Error CS1946
Выражение анонимного метода не может быть преобразовано в дерево выражения.An anonymous method expression cannot be converted to an expression tree.
Анонимный метод — это набор инструкций, но дерево выражения не должно содержать инструкции.An anonymous method represents a set of statements but an expression tree must not contain a statement. Таким образом, анонимный метод не может быть представлен в виде дерева выражения.Therefore an anonymous method cannot be represented by an expression tree.
Чтобы устранить эту ошибку, замените анонимный метод лямбда-выражением.To correct this error, change the anonymous method to a lambda expression.
ПримерExample
В следующем примере возникает ошибка CS1946:The following example generates CS1946:
// cs1946.cs
using System;
using System.Linq.Expressions;
public delegate void D();
class Test
{
static void Main()
{
Expression<D> tree = delegate() { }; //CS1946
// Try using a lambda expression instead.
// Expression<D> tree = (x) => x + 1;
}
}