У меня есть метод, который я хочу преобразовать в метод расширения
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();
, ошибка говорит Оператор '.' нельзя применить к операнду типа «лямбда-выражение»
Где я ошибаюсь?