在C#中获取属性名称作为字符串

是否可以编写一个返回对象属性的字符串值的函数?

如果我有一个名为apple的对象,它有一个名为peel的方法,我希望有一个方法在调用getAttributeName(apple.peel)时返回“peel”。

我该怎么做?

您可以编写扩展方法

public static string GetPropName(this T obj, Expression> 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);