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