0

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

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

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

4

2 回答 2

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;

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

于 2013-01-28T11:40:37.633 回答
0

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

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

我通过一个类似的问题找到了这个:动态 WHERE 子句 in LINQ

于 2013-01-28T11:20:07.863 回答