我一直在想如何使用Expression類來實現一些簡單的數學。C#表達式樹簡單算術
我想要做的就是這個
(1 + 10 * 15)
當我嘗試通過Expression.Add和Expression.Constant,但這樣做的結果我得到的是這種
((1 + 10) * 15)
哪個不正確,因爲它首先評估1 + 10而不是10 * 15.
有沒有一種方法來組合Expression.Add/Multiply等。沒有它創建括號?我假設有,但我無法找到在哪裏或如何!
測試代碼我已經是這個
var v1 = Expression.Constant(1, typeof(int));
var v2 = Expression.Constant(10, typeof(int));
var v3 = Expression.Constant(15, typeof(int));
var a1 = Expression.Add(v1, v2);
var m2 = Expression.Multiply(a1, v3);
感謝您的時間,
理查德。
我之前試過這個,它是按照預期工作的,但是因爲這是更大圖片的一部分,所以從零件分析和構建零件的順序首先是加。 因此,我將不得不按照BODMAS的順序對錶達式進行正確構建? – 2010-12-22 11:05:31