質問

私はそうとしていることのがある場合は単純な構文に変換する方法をグループを表現。簡単にできそうでな立地となっておりlambdasわけではないので翻訳する方法

され

public delegate int FuncIntInt(int x);

以下のファイルが全て有効です:

Func<int, int> func1 = x => x;
FuncIntInt del1 = x => x;
Expression<Func<int, int>> funcExpr1 = x => x;
Expression<FuncIntInt> delExpr1 = x => x;

だが私と同じインスタンスの方法やりとりするいわゆる"クラウドでの表現

Foo foo = new Foo();
Func<int, int> func2 = foo.AFuncIntInt;
FuncIntInt del2 = foo.AFuncIntInt;
Expression<Func<int, int>> funcExpr2 = foo.AFuncIntInt; // does not compile
Expression<FuncIntInt> delExpr2 = foo.AFuncIntInt;      //does not compile

ものになコンパイル"変換できない方法グループのAFuncIntInt'非委譲タイプシステムLinq.表現表現<...>'.ただしを呼び出す方法は?"

であ構文をキャプチャ方法grouです。

おかげさ アルネ

役に立ちましたか?

解決

ペギー双葉山です。

  Expression<Func<int, int>> funcExpr2 = (pArg) => foo.AFuncIntInt(pArg);
  Expression<FuncIntInt> delExpr2 = (pArg) => foo.AFuncIntInt(pArg);

他のヒント

ることも可能でかい NJection.LambdaConverter 委譲をLambdaExpressionコンバーター図書館

public class Program
{
    private static void Main(string[] args) {
       var lambda = Lambda.TransformMethodTo<Func<string, int>>()
                          .From(() => Parse)
                          .ToLambda();            
    }   

    public static int Parse(string value) {
       return int.Parse(value)
    } 
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top