CS1946 de erro do compilador

Mensagem de erro

Uma expressão de método anônimo não pode ser convertida em uma árvore de expressão.

Um método anônimo representa um conjunto de instruções, mas uma árvore de expressões não deve conter uma demonstrativo.Portanto, um método anônimo não pode ser representado por uma árvore de expressão.

Para corrigir este erro

  • Altere o método anônimo para uma expressão lambda.

Exemplo

O exemplo a seguir gera 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;
        }
    }

Consulte também

Conceitos

Árvores de Expressão

Referência

Métodos anônimos (Guia de programação do C#)