在.NET中使用表达式解析器

时间:2013-01-28 11:12:05

标签: c# .net math expression

我不确定这是否是典型的stackoverflow问题,但我正在开发一个应用程序,我应该不断检查某些条件(例如,如果某个变量的值超过阈值)。条件可以随时更改,最好从代码外部更改。

人们建议我应该使用表达式解析器,但我仍然不明白他们为.NET提供的基本数学运算提供了什么优势。

你推荐一个好的.NET表达式解析器吗?

2 个答案:

答案 0 :(得分:0)

我认为你需要动态LINQ。您可以将条件作为字符串传递。

这是一篇关于ScottGu的博客文章:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

我发现了类似的问题:Dynamic WHERE clause in LINQ

答案 1 :(得分:0)

表达式解析器将提供更大的灵活性。你的表达式可以用字符串写成公式,它们可以是应用程序数据而不是带有编码的类/方法/等等。

你可以这样做:

// Assign an action to an expression given as a string
ExpressionObserver.Add("(a+b+c)/2 > x-y", () => { DoSomething(); });

或者:

// Replace the old expression by something written by the user in the UI
someExpressionActionAssignment.Expression = MyLineEdit1.Text;

但我不知道所有这些增加的复杂性是否真的在你的情况下得到回报。如果你只有一些简单的表达式,那么它可能有点过分。