【发布时间】:2018-09-07 03:41:52
【问题描述】:
我想通过传递委托而不是 const 字符串来提高可维护性。我做的是这样的;
var propertyName = SprintMetrics.GetNameOf(metric => metric.Productivity); //Should be : "Productivity"
和:
public static string GetNameOf(Func<SprintMetrics, double> valueFunc)
{
return valueFunc.GetMethodInfo().Name; //Result is : <Excute>b_40....
}
在调试过程中,我走丢“valueFunc”,到处都没有“生产力”。
有什么方法可以获取属性的名称“Productivity”?谢谢。
根据下面拒绝访问的回答,可以通过以下两种方式完成:
var p = nameof(SprintMetrics.Productivity); //"Productivity"
var metrics = new SprintMetrics();
p = nameof(metrics.Productivity); //"Productivity"
【问题讨论】:
标签: c# asp.net properties delegates