2009-08-11 12 views
1

可能性の重複:私たちは例を提供C#の 可能な場合でのJSのeval()を実装する方法How can I evaluate C# code dynamically?実装JS評価


C# eval equivalent?

重複.. ありがとう

+0

MSScript.dllをプロジェクトに含めることができますか?回答があれば – Dewfy

+0

a = "<>/100"となります。 a.replace( "<"、 "20"); 文字列b = eval(a); 結果として.2を取得する必要があります どうすればC#で行うことができますか? JScriptを使用せずにできますか? eval(a)を置き換えるには です。 – Preetham

+0

[C#eval相当?](http://stackoverflow.com/questions/4629/c-eval-equivalent) – rahul

答えて

4

実際には、JScriptC#のから機能...

は、次のJScriptコードで、ファイルJsMath.jsを作成します。

class JsMath 
{ 
    static function Eval(expression : String) : double 
    { 
     return eval(expression); 
    }; 
} 

は、DLLにそれをコンパイルします。

jsc /t:library JsMath.js 

はJsMathへの参照を追加します。 DLLをプロジェクトに追加します。今、あなたのコード内でJsMathクラスを使用することができます:あなたがC#3.0/.NET 3.5を使用することができる場合

double result = JsMath.Eval(expression); 
+0

これは非常に実用的な解決策です任意の.NET言語で迅速に評価できます。 Microsoft.JScript.dllへの参照も含める必要があります。 – gavi

0

は、MSDNコードギャラリーでC# Samples for Visual Studio 2008で完全に動作表現パーサーのサンプルがあります、DynamicQuery下。これにより、単一の式を評価するだけでなく、関数(デリゲート)をLINQ式から作成することさえできます。 (LinqDataSourceコントロールはこのサンプルを少し修正したものを内部的に使用します)

関連する問題