有時候需要,在程序中靈活的嵌入自定義的計算邏輯,使用C#加載JS腳本形式可以實現;
// 添加引用 using Microsoft.JScript; string jsStr = "var i=100; i++; i=i*100; var obj = {a:i};"; Stopwatch sw = new Stopwatch(); sw.Start(); object ret1 = null; try { ret1 = Eval.JScriptEvaluate(jsStr, VsaEngine.CreateEngine()); } catch (Exception ex) { MessageBox.Show(ex.StackTrace.ToString(), "執行失敗", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } sw.Stop(); string res = ""; if (ret1 is ArrayObject) { // 數組 ArrayObject arr = (ArrayObject)ret1; res = arr[0].ToString(); } else if (ret1 is JSObject) { // 對象 JSObject obj = (JSObject)ret1; res = obj["a"].ToString(); } else { // 單值 res = ret1.ToString(); } MessageBox.Show(res + " 用時:" + sw.ElapsedMilliseconds.ToString() + "ms");