轉 C# 將字符串轉換為計算公式,並計算結果


根據總結,大概分為以下三種:

 第一種: 用DataTable中的Compute方法。

   例如:" 1*2*3 "

   代碼如下:

   var a = new System.Data.DataTable().Compute("1*2*3", ""); 
   //結果a=>6

   第二種:利用javascript中的Eval方法解析.此方法需引入添加COM引用:Microsoft Sctipt Control 1.0  

   在使用過程中,若出現無法嵌入互操作類型“MSScriptControl.ScriptControlClass”,則可以這樣操作。右擊MSScriptControl程序集--〉屬性--〉嵌入互操作類型--〉改為false

   讓我們看下這個方法的強大之處:

   例如:"1*2*3"

   此方法還能解析像這種等字符串 :“if(3>2){  1 }else {  2}”

   代碼如下:

MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
                sc.Language = "javascript";
                var b = sc.Eval("1*2*3");
    //結果b=>6

    第三種: 引入添加.net 引用 Microsoft.JScript 和Microsoft.Vsa 

   個人認為此方法跟方法二是一樣的,具體區別不清楚 

   例如:"1*2*3"

   此方法還能解析像這種等字符串 :“if(3>2){  1 }else {  2}”,跟方法二一樣。

   代碼如下:

Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
                var c = Microsoft.JScript.Eval.JScriptEvaluate("1*2*3", ve);  
    //結果c=>6

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM