Konwertuj grupę metod na wyrażenie
Próbuję dowiedzieć się, czy istnieje prosta składnia do konwersji grupy metod na wyrażenie. Wydaje się to dość proste w lambdach, ale nie przekłada się to na metody:
Dany
<code>public delegate int FuncIntInt(int x); </code>
wszystkie poniższe są ważne:
<code>Func<int, int> func1 = x => x; FuncIntInt del1 = x => x; Expression<Func<int, int>> funcExpr1 = x => x; Expression<FuncIntInt> delExpr1 = x => x; </code>
Ale jeśli spróbuję tego samego z metodą instancji, zepsuje się przy wyrażeniach:
<code>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 </code>
Oba ostatnie dwa nie skompilowały się z „Nie można przekonwertować grupy metod„ AFuncIntInt ”na nieprzypisany typ„ System.Linq.Expressions.Expression <...> ”. Czy zamierzałeś wywołać metodę?”
Czy więc istnieje dobra składnia do przechwytywania metody grou w wyrażeniu?
dzięki, arne