有很多算法可以計算表達式,例如:通過遞歸下降調車場算法波蘭語反符號是否可以使用C#.net反射或其他現代.net技術評估任何數學表達式?
3 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
盡管使用編譯器服務是一種簡單而有效的解決方案,但是如果用戶輸入該表達式,則會引起嚴重的安全問題,因為它實際上可以執(zhí)行任何操作。
還有另一個非常簡單的解決方案,它更安全:利用JScript Eval函數。您只需要按照以下步驟操作:
創(chuàng)建一個名為JsMath.js的js文件:
class JsMath
{
static function Eval(expression : String) : double
{
return eval(expression);
};
}
編譯成一個類庫:
jsc /t:library JsMath.js
在您的C#項目中引用JsMath庫,并像這樣使用它:
double result = JsMath.Eval(expression);
- 3 回答
- 0 關注
- 464 瀏覽
添加回答
舉報
0/150
提交
取消