2012-03-23 23 views
1

1行のC#複雑な演算子を表す一意のキー( '2 +(a - (x & & y?1:7 ))」演算子はNullable<bool>Nullable<double>変数を使用することができ 開始時に私は、事前に定義された値のDictionary<string, object>を持って ユーザーは、この変数とスタンダールC#の演算子を使用することができます。。。+、 - 、*、/、& &、||、C#の動的コンパイルとコード生成

私はC#を再利用する必要があります。演算子の優先順位メカニズムとコンパイルエラー、警告とメッセージ(コンパイル後に出力される)

  1. 入力文字列をコンパイルしてエラーメッセージを受け取る方法は?
  2. コンパイル前に文字列で使用されている変数を事前定義する方法(var x = new Nullable<bool>(true);などのコードを生成する)?
  3. ロシア語でエラーメッセージを表示することは可能ですか?
  4. パフォーマンス向上のためのコンパイル結果を保存できますか(複数回後に呼び出されます)。

答えて

2

通常、これを行うには、式パーサー(NCalcなど)を使用します。彼らはしばしばあなたの要件に適応するのはかなり簡単なAPIを持っています。

ロシア語でエラーメッセージを表示することは可能ですか?

既存のライブラリを使用している場合、これはおそらくあなたの要件の中で最も難しいでしょう。ただし、NCalcまたは他のオープンソースの式ライブラリパーサーのいずれかを変更して、ロシア語のエラーメッセージを表示することができます。

関連する問題