zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    N25_复杂链表的复制
    N24_二叉树中和为某一路径
    N23_判断是否为二叉搜索树的后序遍历序列
    N22_从上到下打印二叉树
    win7桌面小工具已停止工作解决办法
    C3P0数据库连接池使用
    js中的页面跳转
    怎么用js代码禁止浏览器的前进与后退?
    怎么在 Dos 下运行 PHP 和 MySQL 命令
    80端口被system 占用解决方法
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5602157.html
Copyright © 2011-2022 走看看