Сообщение об ошибке «Оператор '.' нельзя применить к операнду типа «лямбда-выражение» при преобразовании метода в метод расширения?

У меня есть метод, который я хочу преобразовать в метод расширения

public static string GetMemberName<T>(Expression<Func<T>> item)
{
    return ((MemberExpression)item.Body).Member.Name;
}

и вызвать его как

string str = myclass.GetMemberName(() => new Foo().Bar); 

, чтобы он оценивался как str = "Bar"; // Он дает имя члена, а не его значение

Теперь, когда я пытаюсь преобразовать это в метод расширения с помощью этого

public static string GetMemberName<T>(this Expression<Func<T>> item)
{
    return ((MemberExpression)item.Body).Member.Name;
}

и вызвать его как

string str = (() => new Foo().Bar).GetMemberName();

, ошибка говорит Оператор '.' нельзя применить к операнду типа «лямбда-выражение»

Где я ошибаюсь?

8
задан Nikhil Agrawal 23 June 2012 в 07:16
поделиться