Я пытаюсь выяснить, существует ли простой синтаксис для преобразования группы методов в выражение. С лямбдами это кажется достаточно простым, но это не переводится в методы:
Учитывая
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 »в тип без полномочий« System.Linq.Expressions.Expression <...> '. Вы намеревались вызвать метод? "
Так есть ли хороший синтаксис для захвата метода grou в выражении?
спасибо,
Арне