2011-11-14 3 views
0

コードの一部をVBScriptからC#に変換しようとしています。同等のVBs - > C#:評価と実行

string replacementMatch = ....; 

...

replacementMatch = Eval(replacementMatch); 

OR

Execute(replacementMatch); 

私はC#で同等のを見つけることができません: は、私はこれらの行を持っています。

答えて

4

Eval関数は式を評価し、結果を返します。 C#やVB.NETなどの静的型言語では、同等のものは見つかりません。このような機能を提供するライブラリがあります(fleeなど)。

0

全く同じ機能を見つけることはできませんが、CodeDomProviderを使用すると、生成されたコードからアセンブリをコンパイルし、Reflectionを使用してメソッドを呼び出すことができます。

0

同等品が見つかりません。 C#コンパイラを使用することはできますが、アプリケーションで任意のコードを実行することは決してお勧めできません。あなたの要件を考慮し、単純なパーサーを書くことが実現可能かどうかを見てください。その場合、System.Linq.Expressionsを確認してください。

0

ドキュメント「VBScript」では、「Eval」および「Execute」引数が「VBScript式として」評価されることがわかります。つまり、短い言葉でC#の同等物はありません。

一般に、vbコードを確認し、実行時にスクリプトを評価する必要がないようにC#で書き直すことを検討する必要があります。

実行時にステートメントを作成し評価する必要がある場合は、「http://www.codeproject.com/KB/dotnet/evaluator.aspx」のようなサードパーティのツールを試すことができます(しかし、この特定のツールを使用しました - これが本当に必要なときはほとんどありません)。