Compilerfehler CS1946Compiler Error CS1946

Ein anonymer Methodenausdruck kann nicht in eine Ausdrucksbaumstruktur konvertiert werden.An anonymous method expression cannot be converted to an expression tree.

Eine anonyme Methode stellt einen Satz von Anweisungen dar, aber eine Ausdrucksbaumstruktur darf keine Anweisung enthalten.An anonymous method represents a set of statements but an expression tree must not contain a statement. Deshalb kann eine anonyme Methode nicht von einer Ausdrucksbaumstruktur dargestellt werden.Therefore an anonymous method cannot be represented by an expression tree.

So beheben Sie diesen FehlerTo correct this error

  1. Ändern Sie die anonyme Methode in einen Lambdaausdruck.Change the anonymous method to a lambda expression.

BeispielExample

Im folgenden Beispiel wird CS1946 generiert: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;  
        }  
    }  

Siehe auchSee Also

Anonyme MethodenAnonymous Methods
AusdrucksbaumstrukturenExpression Trees