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,代码如下
我们看到TraceMessage这个方法,在它的参数列表中,后面的三个参数加了刚才说的几个Attribute,在参数后面加默认值的是为了在方法调用时不用给它传这些参数。
当方法调用以后,嘿嘿,这些Attritbue起作用了,我们看看运行结果
注意,这里得到的行号是编译时的代码行号。
在构造函数中调用
新建一个Example类,在构造函数中调用TraceMessage方法
运行结果是这样
在造函数中调用他输出的方法名是“.ctor”
此外,在析构函数和别的地方调用还会有不同的结果,大家可以去试一试。
扩展阅读
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。
CallerInformation的更多相关文章
- C#的变迁史 - C# 5.0 之调用信息增强篇
Caller Information CallerInformation是一个简单的新特性,包括三个新引入的Attribute,使用它们可以用来获取方法调用者的信息, 这三个Attribute在Sys ...
- C#版本和.NET版本以及VS版本的对应关系
C#版本和.NET版本以及VS版本的对应关系 版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual ...
- c#版本与vs的对应关系
版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual Studio .NET 2002 2002.1 ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- C#5语法新特性
C# 5.NET Framework 4.5 Visual Studio 2012 C#5.0新引进的语法基于.Net Framework 4.5.主要引进的语法:异步与等待,调用方信息 其中最重要的 ...
随机推荐
- .Net Core 1.0.0正式版安装及示例教程
使用VS Code 从零开始开发调试.NET Core 1.0 RTM. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code 全称是 Visual Studio Code,V ...
- 二叉树遍历Java实现
[仅贴代码及测试结果] -------------------BinaryTree.java------------------------------ class Tree<E>{ E ...
- 【BZOJ-3450】Tyvj1952Easy 概率与期望DP
3450: Tyvj1952 Easy Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 468 Solved: 353[Submit][Status] ...
- 【BZOJ-1131】Sta 树形DP
1131: [POI2008]Sta Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1150 Solved: 378[Submit][Status] ...
- CSS文件开头到底声明@charset "utf-8"
@charset "utf-8" 这个声明是告诉浏览器[我的CSS文件是UTF-8编码的],但实际上这个文件可以不用是UTF-8编码的,所以这个声明能达到欺骗浏览器的作用. 但实践 ...
- Windows 8及以上系统安装好SQL Server 2008之后找不到SQL Server配置管理器的问题
直接的方法: 打开[运行]->输入[C:\Windows\SysWOW64\mmc.exe /32 C:\Windows\SysWOW64\SQLServerManager10.msc]即可. ...
- WHMCS系统API调用
WHMCS:域名管理系统,现在网络上很多借助此系统Shadowsocks插件+ShadowsocksR多用户服务端进行VPN的售卖,能做到流量控制等. 在对接此系统的API时,我发现了很多功能都已经实 ...
- hdu 3089 约瑟夫环
原来并不知道约瑟夫环还可以递推直接解orz 约瑟夫问题的递推公式: 设f[n]表示一共n个人,数到k出局,这样最后的winner (n个人从0开始标号,即0--n-1) f[n]=(f[n-1]+k) ...
- 基本概率分布Basic Concept of Probability Distributions 2: Poisson Distribution
PDF version PMF A discrete random variable $X$ is said to have a Poisson distribution with parameter ...
- hdu 2036 - 改革春风吹满地(计算几何)
题意:求解多边形面积 解法: 先了解数学上"叉积"的含义与性质: 三角形ΔABC的面积为: 我们可以依次计算每个三角形的面积,ΔABC,ΔACE,ΔEF - - 所有三角形的面积之 ...