コードの一部をVBScriptからC#に変換しようとしています。同等のVBs - > C#:評価と実行
string replacementMatch = ....;
...
replacementMatch = Eval(replacementMatch);
OR
Execute(replacementMatch);
私はC#で同等のを見つけることができません: は、私はこれらの行を持っています。
コードの一部をVBScriptからC#に変換しようとしています。同等のVBs - > C#:評価と実行
string replacementMatch = ....;
...
replacementMatch = Eval(replacementMatch);
OR
Execute(replacementMatch);
私はC#で同等のを見つけることができません: は、私はこれらの行を持っています。
Eval関数は式を評価し、結果を返します。 C#やVB.NETなどの静的型言語では、同等のものは見つかりません。このような機能を提供するライブラリがあります(fleeなど)。
全く同じ機能を見つけることはできませんが、CodeDomProvider
を使用すると、生成されたコードからアセンブリをコンパイルし、Reflection
を使用してメソッドを呼び出すことができます。
Microsoft Script Control
への参照を追加し、c#のEval関数を呼び出すことができます。 この回答を参照してください。
How can I evaluate the result of a boolean expression in string format on runtime in C#?
同等品が見つかりません。 C#コンパイラを使用することはできますが、アプリケーションで任意のコードを実行することは決してお勧めできません。あなたの要件を考慮し、単純なパーサーを書くことが実現可能かどうかを見てください。その場合、System.Linq.Expressionsを確認してください。
ドキュメント「VBScript」では、「Eval」および「Execute」引数が「VBScript式として」評価されることがわかります。つまり、短い言葉でC#の同等物はありません。
一般に、vbコードを確認し、実行時にスクリプトを評価する必要がないようにC#で書き直すことを検討する必要があります。
実行時にステートメントを作成し評価する必要がある場合は、「http://www.codeproject.com/KB/dotnet/evaluator.aspx」のようなサードパーティのツールを試すことができます(しかし、この特定のツールを使用しました - これが本当に必要なときはほとんどありません)。