Expression
タイプの形式でExpression<Func<...,...,...,TResult>>
(ランダムであるが固定数のパラメータ)インスタンスを受け取ります。例えばパラメータが与えられた式funcの結果を計算する最速の方法
:
Expression<Func<int,int,int>> adderExpression = (a,b) => a+b;
LambdaExpression receivedExpression = adderExpression;
//Later on, I get only the receivedExpression variable and an array of values for which I have to compute:
var values = new object[] {3, 4};
var result = receivedExpression.Compile().DynamicInvoke(values);
Iがアクセスを持っている唯一のものはreceivedExpression
変数とIコンパイル式を適用した結果を計算するために持っているため、オブジェクトの値の配列です。
receivedExpression
は変更されません。一度取得すれば、同じままです。
私の状況で変数result
を計算する最も速い方法は何ですか?この場合、DynamicInvoke
は非常に遅いので、結果を計算するためのより速い方法があるのだろうかと思いました。
何のメソッド 'コンパイルがないので、あなたのコードがコンパイルされません。あなたは
Expression
で渡さを含むことラムダをコンパイル'式'の上にある。 – NetMageおそらく 'LambdaExpression receivedExpression'でしょうか? – Phaeze
関連するタイプ、特に戻りタイプを知っていますか? – NetMage