次のようなC#言語で数式を解析しようとしています
"5*3 + 2"
"(3*4 - 2)/5"
C#またはVBScript、JavaScript(C#プログラムで呼び出される)などのスクリプトで行うことは可能ですか?
この種のことを C# で行うために以前に使用したトリックがあります。それは、JScript.NET のeval
関数を使用することです。完全なコードは、この質問に対する私の回答にあります。VBScript や JavaScript などのスクリプト言語に依存するのではなく、純粋な .NET であり、私が使用する実装は C# コードからオンザフライで JScript.NET アセンブリを生成するため、ソリューションに言語を混在させる必要はありません。
Microsoft のDynamic Linqサンプルを使用して、 System.Linq.Expressions 名前空間の型を使用する式を動的に作成することに成功しました。これは私にとって非常にうまく機能し、ActiveReportsのデフォルト式の代わりにより自然な C# 構文を使用できるようになりました。