且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

***和最短的方法来评估数学表达式

更新时间:2021-09-23 01:47:41

除了Thomas的答案,实际上可以直接从C#访问(不推荐使用)的JScript库,这意味着您可以使用相当于JScript的 eval 函数。

Further to Thomas's answer, it's actually possible to access the (deprecated) JScript libraries directly from C#, which means you can use the equivalent of JScript's eval function.

using Microsoft.JScript;        // needs a reference to Microsoft.JScript.dll
using Microsoft.JScript.Vsa;    // needs a reference to Microsoft.Vsa.dll

// ...

string expr = "7 + (5 * 4)";
Console.WriteLine(JScriptEval(expr));    // displays 27

// ...

public static double JScriptEval(string expr)
{
    // error checking etc removed for brevity
    return double.Parse(Eval.JScriptEvaluate(expr, _engine).ToString());
}

private static readonly VsaEngine _engine = VsaEngine.CreateEngine();