2012-02-04 37 views

回答

1

我認爲你必須保存在數據庫中的準確公式,當你想使用它,使用過程中的公式字符串替換方法。你應該得到Variabl1,變量2數據,並使用此代碼:

string f="Variabl1+Variable2*3.2+200"; 
f= System.Text.RegularExpressions.Regex.Replace(f, "Variabl1", TxBxVar1.Text); 
f= System.Text.RegularExpressions.Regex.Replace(f, "Variabl2", TxBxVar2.Text); 

,然後再處理f運行公式。對於運行你可以使用

System.Text.RegularExpressions.Regex.Split(f, "+"); 

並使用此替換代碼爲所有您想要的數學運算符。

注意:這是我的方式。但也許有另一種方式在C#,我不知道。

1

在C#中,您可以使用codeDOM服務來動態編譯C#代碼,或者您可以通過自己解析公式字符串來動態構建expression tree。但可能兩種方式缺乏性能,因爲需要運行時編譯 (呵呵,除了可能this one可能表現不夠好)。 因此,我最好建議將一些腳本引擎嵌入到.NET框架中 - 例如LuaJavascript。 如果您還在編寫asp.net應用程序 - 爲什麼您不能忽略在客戶端計算公式結果的直接JavaScript代碼?這可能是最好的解決方案,因爲Web應用程序和客戶端腳本就像夫妻:-)