我正在研究一个项目,需要评估VB.NET中的一些公式。我一直在使用 MS脚本控制 评估一些简单的逻辑/数学公式。

但是,我现在面临着将程序中的变量设置为某些值的字符串表达式。因此,例如,假设我有以下内容:

Dim netPrice As Decimal
Dim expressionFormula As String = "netPrice = 0"

我需要能够评估“ ExpressionFormula”,并将NetPrice变量设置为0。我一直在尝试MS脚本控制中的.addobject方法的不同组合,但是尚无奏效。

我应该提到此示例仅用于说明目的,实际情况涉及来自类型数据集的几个数据表对象。最后,我的数据表中的某些字段可能需要根据这些动态表达式设置为特定的常数值。

谢谢您的帮助!

有帮助吗?

解决方案

对于这种功能,您需要编写自己的解析器和评估器。

看看Linq Expression 上课 - 可能会有所帮助。

或者,根据您的方法,您可以使用该类别编写和编译动态类 CSharpCodeProvider 将您的表达式编译成C#类/汇编。

其他提示

如果您必须处理复杂的表达式,则该库可能会有所帮助: http://flee.codeplex.com/ ?

动态linq 是您要寻找的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top