Dar*_*rov 65

DataTable有一个Compute方法,允许你写这个:

var result = new DataTable().Compute("2-3/4*12", null);
Run Code Online (Sandbox Code Playgroud)

请注意,这仅限于简单的数学表达式.

其他选项包括在DLR中使用动态语言,例如IronPython和IronRuby.看看这篇文章:

var engine = new IronPython.Hosting.PythonEngine();
double result = pythonEngine.EvaluateAs<double>("2-3/4*12");
Run Code Online (Sandbox Code Playgroud)

您也可以在GitHub上查看NCalc库.


Dav*_*ins 8

有一些有趣的选项可供您使用.

  1. NCalc - 使用ANTLR构建的C#Lexer解析器.这将解析您的文本,并允许您为参数/变量赋值.解释器是C#,因此您不必在应用程序域中加载其他程序集等.

  2. JINT - 基于C#的Javascript解释器,由ECalc的同一作者使用ANTLR创建语法.目前处于测试阶段,但在计算和功能方面效果很好.

  3. CS-Script.Net - 来自网站:"CS-Script是一个基于CLR(公共语言运行时)的脚本系统,它使用符合ECMA的C#作为编程语言.CS-Script目前针对Microsoft CLR实现(.NET 2.0/3.0/3.5)对Mono的支持有限." 加载脚本并在内存和单独的应用程序域中创建程序集.它非常强大,我在嵌入式脚本的生产中使用它.


归档时间:

查看次数:

30261 次

最近记录:

7 年,10 月 前