2

VB.NET で数式を評価する必要があるプロジェクトに取り組んでいます。私はMS Script Controlを使用して、いくつかの単純な論理式や数式を評価してきました。

ただし、プログラム内の変数を特定の値に設定する文字列式の処理に直面しています。たとえば、次のようなものがあるとします。

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

「expressionFormula」を評価し、netPrice 変数を 0 に設定できるようにする必要があります。MS Script Control で .AddObject メソッドのさまざまな組み合わせを試しましたが、まだ何も機能していません。

この例は説明のみを目的としており、実際のシナリオには、型指定された DataSet からの複数の DataTable オブジェクトが含まれます。最終的に、DataTable の一部のフィールドは、これらの動的式に基づいて特定の定数値に設定する必要がある場合があります。

助けてくれてありがとう!

4

3 に答える 3

3

この種の機能については、独自のパーサーとエバリュエーターを作成する必要があります。

LinqExpressionクラスを見てください-それは役立つかもしれません。

または、アプローチによっては、を使用して動的クラスを記述およびコンパイルしてCSharpCodeProvider、式をC#クラス/アセンブリとしてコンパイルできる場合があります。

于 2010-12-05T16:45:06.963 に答える
2

複雑な式を処理する必要がある場合は、このライブラリが役立つかもしれません: http://flee.codeplex.com/ ?

于 2010-12-05T16:44:06.090 に答える
0

DynamicLinqはあなたが探しているものです

于 2010-12-05T16:47:07.210 に答える