有很多算法可以计算表达式,例如:
是否可以使用C#.net反射或其他现代.net技术评估任何数学表达式?
根据Thomas的回答,实际上可以直接从C#访问(不建议使用的)JScript库,这意味着您可以使用等效于JScript的eval功能。
eval
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();