【发布时间】:2013-06-07 13:50:43
【问题描述】:
这是我想要实现的代码:
string Name = GetPropName(myClass.SomeProperty); // returns "SomeProperty"
因为我可能要重命名我的类的属性,所以我不想忘记在我的代码中的某处更改它们的字符串名称,并且有很多地方我使用字符串名称作为属性,所以我想有这个方便的方法可以为我获取属性的当前名称作为字符串。我该怎么做?
我所追求的是一个方法,它只返回它作为参数接收的属性的字符串名称。
我看到之前有人问过类似的问题,但没有答案可以很好地解释如何做我想做的事情。
【问题讨论】:
-
你想要GetPropName(x=>x.PropName);
-
@adt 我不知道,是吗?
-
是的,实际上链接的答案stackoverflow.com/questions/2820660/… 应该可以工作。因为你不想使用道具名称作为字符串,用表达式公开它们可能对你有用
-
@OlivierJacot-Descombes 你的答案对我不起作用 - VS 似乎找不到
Expression和MemberExpression,即使正在使用System.Linq命名空间。也许这是来自旧版本的 .Net 或其他东西。
标签: c# properties .net-4.5