首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MethodBase.GetCurrentMethod().Name vs [CallerMemberName]

MethodBase.GetCurrentMethod().Name vs [CallerMemberName]
EN

Stack Overflow用户
提问于 2013-07-13 09:19:02
回答 1查看 3.8K关注 0票数 6

有哪些不同之处以及对代码的影响?

那么性能和限制呢,什么才是更好的选择呢?

新属性:

  • CallerFilePathAttribute
  • CallerMemberName
  • CallerLineNumber

今天,它们也可以在.NET 4中使用(它很容易开发,而且看起来很神奇)。它们的值是在运行时编译还是解析?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 13:54:46

例如,MethodBase.GetCurrentMethod()返回当前方法,而您可以使用[CallerMemberName]等将有关调用方法的一些信息传递到当前方法中。

前者是在运行时使用反射计算的,因此相对较慢,而后者是在编译时处理的,本质上是无操作性能。我实际上已经在测试中验证了这一点。反射每次将花费您大约20微秒,如果经常调用,这可能是相当重要的,而[Caller...]属性不会招致可测量的惩罚。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17626059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档