你能用反射来找到当前正在执行的方法的名称吗?就像标题所说:反射可以为您提供当前正在执行的方法的名称。由于海森堡的问题,我倾向于不猜。如何在不改变当前方法的情况下调用一种方法来告诉您当前的方法?但是我希望有人可以在那里证明我的错。更新:第2部分:这可以用来查看属性的内部代码吗?第3部分:性能如何?最终结果我了解了MethodBase.GetCurrentMethod()。我还了解到,我不仅可以创建堆栈跟踪,而且如果需要,我只能创建我需要的确切帧。要在属性中使用它,只需使用.Substring(4)删除'set_'或'get_'。
3 回答
开满天机
TA贡献1786条经验 获得超13个赞
从.NET 4.5开始,您还可以使用[CallerMemberName]
示例:属性设置器(回答第2部分):
protected void SetProperty<T>(T value, [CallerMemberName] string property = null) { this.propertyValues[property] = value; OnPropertyChanged(property); } public string SomeProperty { set { SetProperty(value); } }
编译器将在callites中提供匹配的字符串文字,因此基本上没有性能开销。
- 3 回答
- 0 关注
- 482 浏览
添加回答
举报
0/150
提交
取消