如何从Func<T, TResult>
获取属性名称?
有很多帖子如何获取道具名称,但来自Expression
而不是来自Func
_resultViewModel.SelectMeasurement(si => si.Height, vm => vm.HeightImg); // this is usage... I need to get "Height"
public void SelectMeasurement(Func<ScanInfo, double> measurement, Func<ResultViewModel, ImageSource> image)
{
//some stuff
}
答案 0 :(得分:0)
您无法从Func<T, TResult>
获取“属性名称”,因为构建委托时没有任何“属性”和任何“名称”。
此外,委托可以以不同的方式获得其返回值,而不是成员访问:
Func<Foo, string> = foo => "bar";
这与表达式(Expression<Func<T, TResult>>
)的情况不同,因为表达式代表一些代码,可以编译成委托,并且可以解析。