我有以下简单的代码:错误编译()
var b = Expression.Parameter(typeof(double), "b");
var negativeB = Expression.Negate(b);
如果我停在那里,并尝试快速监视Expression.Lambda(negativeB).Compile()
我得到一个错误:
variable 'b' of type 'System.Double' referenced from scope '', but it is not defined
关于这个错误信息的其他答案似乎没有解决这里发生的事情,或者在这种情况下如何解决它。
您应该使用的λ>使它强类型。像DynamicInvoke这样的事情比强类型的选择要慢几个数量级。 –
@AntonínLejsek,我不知道用户输入什么公式。我可以在运行时创建'Lambda>'所以我可以使用'Invoke()'而不是'DynamicInvoke()'? –
toddmo
如果你不知道,那么没有任何帮助。从我看来,你知道的例子。 –