Methodengruppe in Ausdruck konvertieren

Ich versuche herauszufinden, ob es eine einfache Syntax zum Konvertieren einer Methodengruppe in einen Ausdruck gibt. Mit Lambdas scheint es einfach zu sein, aber es lässt sich nicht in Methoden übersetzen:

Gegeben

<code>public delegate int FuncIntInt(int x);
</code>

Alle folgenden Punkte sind gültig:

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

Aber wenn ich dasselbe mit einer Instanzmethode versuche, bricht es bei den Ausdrücken zusammen:

<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>

Die beiden letzten Kompilierungen schlagen fehl mit "Die Methodengruppe 'AFuncIntInt' kann nicht in den nicht delegierten Typ 'System.Linq.Expressions.Expression <...>' konvertiert werden. Wollten Sie die Methode aufrufen?"

Gibt es eine gute Syntax zum Erfassen einer Methodengruppe in einem Ausdruck?

danke arne

Antworten auf die Frage(2)

Ihre Antwort auf die Frage