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


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

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

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

Выражение анонимного метода не может быть преобразовано в дерево выражения.
An anonymous method expression cannot be converted to an expression tree.

Анонимный метод представляет набор операторов, а дерево выражения не должно их содержать. Таким образом, анонимный метод не может быть представлен деревом выражения.

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

  • Измените анонимный метод на лямбда-выражение.

Пример

Следующий пример приводит к возникновению ошибки 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;
        }
    }

См. также

Основные понятия

Деревья выражений

Ссылки

Анонимные методы (Руководство по программированию в C#)