Convert Method Group to Expression
c#-3.0, expression, lambda, method-group
Solution
How about this?
Expression<Func<int, int>> funcExpr2 = (pArg) => foo.AFuncIntInt(pArg);
Expression<FuncIntInt> delExpr2 = (pArg) => foo.AFuncIntInt(pArg);
Problem
I'm trying to figure out of if there is a simple syntax for converting a Method Group to an expression. It seems easy enough with lambdas, but it doesn't translate to methods: Given ``` public delegate int FuncIntInt(int x); ``` all of the below are valid: ``` Func<int, int> func1 = x => x; FuncIntInt del1 = x => x; Expression<Func<int, int>> funcExpr1 = x => x; Expression<FuncIntInt> delExpr1 = x => x; ``` But if i try the same with an instance method, it breaks down at the Expressions: ``` 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 ``` Both of the last two fail to compile with "Cannot convert method group 'AFuncIntInt' to non-delegate type 'System.Linq.Expressions.Expression<...>'. Did you intend to invoke the method?" So is there a good syntax for capturing a method grou in an expression? thanks, arne