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)
有一些有趣的选项可供您使用.
NCalc - 使用ANTLR构建的C#Lexer解析器.这将解析您的文本,并允许您为参数/变量赋值.解释器是C#,因此您不必在应用程序域中加载其他程序集等.
JINT - 基于C#的Javascript解释器,由ECalc的同一作者使用ANTLR创建语法.目前处于测试阶段,但在计算和功能方面效果很好.
CS-Script.Net - 来自网站:"CS-Script是一个基于CLR(公共语言运行时)的脚本系统,它使用符合ECMA的C#作为编程语言.CS-Script目前针对Microsoft CLR实现(.NET 2.0/3.0/3.5)对Mono的支持有限." 加载脚本并在内存和单独的应用程序域中创建程序集.它非常强大,我在嵌入式脚本的生产中使用它.
| 归档时间: |
|
| 查看次数: |
30261 次 |
| 最近记录: |