最近看到論壇有的朋友在問,什麼算法來完成 算術表達式的格式到值的計算。正好之前自己在項目中用到過,所以在這裏分享一下。
先附上一個之前找到的只進行常規算術運算的方法,首先聲明,該方法用於對比,並不推薦使用。
上代碼:
上述的第一種方法,其實就是體力活兒,而且並非沒有BUG,最重要一點是:它只能做算術運算。
我們來看看第二種方法,通過反映來做,上代碼:
第二種方法其實就是動態編譯生成一個新的類,然後利用.net來完成計算。
PS:還是集體力量大呀,看到其它網友的回帖,發現算術運算的另外一個簡單方法,就是利用DataTable.Compute,是否能完成邏輯運算,有待測試。