我有以下簡單的代碼:錯誤編譯()
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
如果你不知道,那麼沒有任何幫助。從我看來,你知道的例子。 –