注: 数式の評価は、この質問の焦点ではありません。.NET で実行時に新しいコードをコンパイルして実行したいと考えています。 そうは言っても…
ユーザーが次のような数式をテキスト ボックスに入力できるようにしたいと考えています。
x = x / 2 * 0.07914
x = x^2 / 5
そして、その式を着信データ ポイントに適用します。入力データ ポイントはxで表され、各データ ポイントはユーザー指定の式によって処理されます。私はこれを何年も前に行いましたが、計算ごとに方程式のテキストを解析する必要があるため、解決策が好きではありませんでした。
float ApplyEquation (string equation, float dataPoint)
{
// parse the equation string and figure out how to do the math
// lots of messy code here...
}
大量のデータ ポイントを処理している場合、かなりのオーバーヘッドが発生します。方程式をその場で関数に変換できるようにして、一度だけ解析する必要があるようにしたいと思います。次のようになります。
FunctionPointer foo = ConvertEquationToCode(equation);
....
x = foo(x); // I could then apply the equation to my incoming data like this
関数 ConvertEquationToCode は、方程式を解析し、適切な数学を適用する関数へのポインターを返します。
アプリは基本的に、実行時に新しいコードを記述します。これは .NET で可能ですか?