我正在尝试用 C# 语言解析公式,例如
"5*3 + 2"
"(3*4 - 2)/5"
是否可以在 C# 或 VBScript、JavaScript 等脚本中执行(将在 c# 程序中调用)。
我以前在 C# 中使用过一个技巧来做这种事情,那就是使用 JScript.NET 的eval
函数。你会在我对这个问题的回答中找到完整的代码。它不依赖于像 VBScript 或 JavaScript 这样的脚本语言,它是纯 .NET,而且我使用的实现从 C# 代码动态生成 JScript.NET 程序集,因此无需在您的解决方案中混合语言。
我已经成功地使用 Microsoft 的Dynamic Linq示例来动态制定使用System.Linq.Expressions 命名空间下的类型的表达式。这对我来说效果很好,并且允许我使用更自然的 C# 语法来代替ActiveReports默认表达式。