Partager via


Erreur du compilateur CS0835

Mise à jour : novembre 2007

Message d'erreur

Impossible de convertir une expression lambda en une arborescence d'expression dont l'argument de type 'type' n'est pas un type délégué.
Cannot convert lambda to an expression tree whose type argument 'type' is not a delegate type.

Si une expression lambda est convertie en une arborescence d'expression, elle doit disposer d'un type délégué pour son argument. De plus, l'expression lambda doit pouvoir être convertie en type délégué.

Pour corriger cette erreur

  • Modifiez le paramètre de type int en un type délégué, par exemple Func<int,int>.

Exemple

L'exemple suivant génère l'erreur CS0835 :

// 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;
    }
}