Cette ligne de code qui tente d'attribuer une expression lambda à une variable typée LambaExpression
,syntaxe d'expression lambda vs classe LambdaExpression
LambdaExpression expr = n => n;
il échoue avec la compilation message d'erreur:
ne peut pas convertir lambda expression de type 'System.Linq.Expressions.LambdaExpression' parce qu'il est pas un délégué Type
Il doit donc s'agir d'un type de délégué. Conceptuellement, cela me semble étrange car je peux construire une instance LambdaExpression
en utilisant une méthode d'usine comme ça.
usine Lambda from MSDN
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
et ce n'est pas un type de délégué.
On se demande pourquoi lambda à LambaExpression ne peut pas fonctionner?