为了账号安全,请及时绑定邮箱和手机立即绑定

你能用反射来找到当前正在执行的方法的名称吗?

你能用反射来找到当前正在执行的方法的名称吗?

烙印99 2019-08-01 14:30:47
你能用反射来找到当前正在执行的方法的名称吗?就像标题所说:反射可以为您提供当前正在执行的方法的名称。由于海森堡的问题,我倾向于不猜。如何在不改变当前方法的情况下调用一种方法来告诉您当前的方法?但是我希望有人可以在那里证明我的错。更新:第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中提供匹配的字符串文字,因此基本上没有性能开销。


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 482 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信