是否可以编写一个返回对象属性的字符串值的函数?
如果我有一个名为apple的对象,它有一个名为peel的方法,我希望有一个方法在调用getAttributeName(apple.peel)时返回“peel”。
我该怎么做?
答案 0 :(得分:5)
您可以编写扩展方法
public static string GetPropName<T, P>(this T obj, Expression<Func<T, P>> lambda)
{
var member = lambda.Body as MemberExpression;
var prop = member.Member as PropertyInfo;
return prop.Name;
}
并像这样使用
var u = new User();
string name = u.GetPropName(x=>x.name);