Я хочу повысить удобство сопровождения, передавая делегат, а не константную строку. То, что я сделал, так:
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», и нигде не было «Производительности».
Есть ли способ получить название свойства "Производительность"? Благодарю.
Согласно приведенному ниже ответу «Отказано в доступе», это можно сделать одним из следующих способов:
var p = nameof(SprintMetrics.Productivity); //"Productivity"
var metrics = new SprintMetrics();
p = nameof(metrics.Productivity); //"Productivity"