Erro do Compilador CS1946Compiler Error CS1946

Uma expressão de método anônimo não pode ser convertida em uma árvore de expressão.An anonymous method expression cannot be converted to an expression tree.

Um método anônimo representa um conjunto de instruções, mas uma árvore de expressão não deve conter uma instrução.An anonymous method represents a set of statements but an expression tree must not contain a statement. Portanto, um método anônimo não pode ser representado por uma árvore de expressão.Therefore an anonymous method cannot be represented by an expression tree.

Para corrigir esse erro, altere o método anônimo para uma expressão lambda.To correct this error, change the anonymous method to a lambda expression.

ExemploExample

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

Confira tambémSee also