在项目中,有好多场景需要动态变换计算公式。这些简单的四则运算公式,对人而言很容易。在如何在程序中保持灵活,就需要多写一些代码。好在遇到类似问题的人已经提供了不少解决方案。
NCalc
https://github.com/MichaelAguilar/NCalc
这是好像是最早的一个,不过好久没有更新了。上次更新是15年。更不支持 .NET Core
Eval Expression
https://eval-expression.net/
功能很强大,但是收费
// From simple expression...
int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2})
// To complex code.
int result = Eval.Execute<int>(@"
var list = new List<int>() { 1, 2, 3, 4, 5 };
var filter = list.Where(x => x < 4);
return filter.Sum(x => x);");
DynamicExpresso
https://github.com/davideicardi/DynamicExpresso
Dynamic Expresso 很不错,还有一个 web shell ,不过 .NET Core只支持到2.0