MethodBase.GetCurrentMethod().Name vs [CallerMemberName]



有哪些区别以及对代码的影响?

性能和局限性如何?什么能让它更适合?

新属性:
-[CallerFilePathAttribute]
-[呼叫者成员名称]
-[来电号码]

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

例如,MethodBase.GetCurrentMethod()返回当前方法,而您可以使用[CallerMemberName]等将有关调用方法

前者在运行时使用反射进行评估,因此相对较慢,而后者在编译时进行处理,本质上是无操作性能。事实上,我已经在测试中验证了这一点。反射每次将花费大约20微秒的时间,如果经常调用,这可能非常重要,而[Caller...]属性不会产生可测量的损失。

相关内容

  • 没有找到相关文章

最新更新