CallerInformation

 


http://www.cnblogs.com/henryzhu/archive/2013/01/27/csharp-5-new-callerinformation.html

去年8月,Visual Studio 2012和.NET Framework 4.5已经完成了,在.NET Framework 4.5 的C# 5.0的新特性中,其中之一就是CallerInformation,今天跟大家谈谈。

CallerInformation的三个Attribute

CallerInformation的三个Attribute可以用来获取方法调用者的信息,

这三个Attribute在System.Runtime.CompilerServices命名空间下,分别叫做CallerMemberNameAttribute,CallerFilePathAttribute和CallerLineNumberAttribute。

CallerMemberNameAttribute:用来获取方法调用者的名称

CallerFilePathAttribute:用来获取方法调用者的源代码文件路径

CallerLineNumberAttribute:用来获取方法调用者所在的行号

看了这三个Attribute的介绍,我们已经知道这是在调试程序时用的了,下面我们看一个小例子。

应用实例

在Visual Studio 中新建一个Console Application,代码如下

image

我们看到TraceMessage这个方法,在它的参数列表中,后面的三个参数加了刚才说的几个Attribute,在参数后面加默认值的是为了在方法调用时不用给它传这些参数。

当方法调用以后,嘿嘿,这些Attritbue起作用了,我们看看运行结果

image

注意,这里得到的行号是编译时的代码行号。

在构造函数中调用

新建一个Example类,在构造函数中调用TraceMessage方法

image

运行结果是这样

image

在造函数中调用他输出的方法名是“.ctor”

此外,在析构函数和别的地方调用还会有不同的结果,大家可以去试一试。

扩展阅读

Caller Information (C# and Visual Basic)

posted @   shiningrise  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2014-06-20 网店
2007-06-20 C#精髓-- GridView 72般绝技
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示