Freigeben über


Compilerfehler CS0835

Aktualisiert: November 2007

Fehlermeldung

Lambda kann nur dann in eine Ausdrucksbaumstruktur konvertiert werden, wenn das Typargument "Typ" ein Delegattyp ist.
Cannot convert lambda to an expression tree whose type argument 'type' is not a delegate type.

Wenn ein Lambda-Ausdruck in eine Ausdrucksbaumstruktur konvertiert wird, muss die Ausdrucksbaumstruktur über einen Delegattyp als Argument verfügen. Darüber hinaus muss es möglich sein, den Lambda-Ausdruck in den Delegattyp zu konvertieren.

So beheben Sie diesen Fehler

  • Wandeln Sie den Typparameter von int in einen Delegattyp um, zum Beispiel Func<int,int>.

Beispiel

Durch das folgende Beispiel wird der Fehler CS0835 ausgelöst:

// cs0835.cs
using System;
using System.Linq;
using System.Linq.Expressions;

public class C
{
    public static int Main()
    {
        Expression<int> e = x => x + 1; // CS0835

        // Try the following line instead.
       // Expression<Func<int,int>> e2 = x => x + 1;

        return 1;
    }
}