1. 程式人生 > >C#計算表示式(仿計算器功能)

C#計算表示式(仿計算器功能)

一、用MSScriptControl在C#中執行JavaScript程式碼javascript中有個eval方法用過的人都知道他的方便和強大之處。
在C#中,我們也可以通過Com元件來執行一段javascript程式碼。
下面的程式碼展示瞭如何用MSScriptControl 元件執行一段數學表示式:

1

2

3

4

MSScriptControl.ScriptControlClass sc = new MSScriptControl.ScriptControlClass();

sc.Language = "javascript";

object obj = sc.Eval(

"500-(110-100)/2*6");

Console.WriteLine(obj);

要使用MSScriptControl需要引用com元件 Microsoft Script Control 1.0。解決方案資源管理器視窗 -> 右擊引用 -> 選擇COM中的Mircosoft Script Control -> 確定。這樣會將程式集MSScriptControl新增在引用中

 

 解決方案資源管理器--〉專案目錄--〉引用--〉MSScriptControl--〉屬性--〉嵌入互操作型別--〉改為false

--------------------- 本文來自 feihu_guest 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/feihu_guest/article/details/17464683?utm_source=copy

二、引用Microsoft.JScript與Microsoft.Vsa兩個名稱空間,並呼叫JScriptEvaluate方法實現
注:需加入Microsoft.JScript與Microsoft.Vsa兩個名稱空間。(已過時)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

///<summary>

///四則混合運算

///</summary>

///<param name= "sExpression">計算表示式</param>

///<returns>計算結果</returns>

///<example>

///<code>

///object x = Mathx.Eval("500-(110-100)/2*6");

///</code>

///</example>

public static object Eval(string sExpression)

{

     Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();

     return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);

}