je le simple code suivant:.Erreur sur Expression.Lambda() Compile()
var b = Expression.Parameter(typeof(double), "b");
var negativeB = Expression.Negate(b);
Si j'arrête là et essayez de regarder rapidement Expression.Lambda(negativeB).Compile()
je reçois une erreur:
variable 'b' of type 'System.Double' referenced from scope '', but it is not defined
Les autres réponses à propos de ce message d'erreur ne semblent pas aborder ce qui se passe ici, ni comment le réparer dans ce cas.
Vous devez utiliser Lambda> pour le rendre fortement typé. Des choses comme DynamicInvoke sont des ordres de grandeur plus lents que des alternatives fortement typées. –
@ AntonínLejsek, je ne sais pas quelle formule l'utilisateur tapera. Puis-je créer 'Lambda>' à l'exécution afin que je puisse utiliser 'Invoke()' au lieu de 'DynamicInvoke()'? –
toddmo
Si vous ne savez pas, alors il n'y a pas d'aide. De l'exemple, il me semblait que vous le savez. –