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

См. также разделSee also