拡張メソッドに変換したいメソッドがあります
public static string GetMemberName<T>(Expression<Func<T>> item)
{
return ((MemberExpression)item.Body).Member.Name;
}
そしてそれを次のように呼び出します
string str = myclass.GetMemberName(() => new Foo().Bar);
したがって、次のように評価されますstr = "Bar"; // It gives the Member name and not its value
これでこれを拡張メソッドに変換しようとすると
public static string GetMemberName<T>(this Expression<Func<T>> item)
{
return ((MemberExpression)item.Body).Member.Name;
}
そしてそれを次のように呼び出します
string str = (() => new Foo().Bar).GetMemberName();
エラーは言うOperator '.' cannot be applied to operand of type 'lambda expression'
どこが間違っていますか?