C#之CallerMemberName、CallerFilePath、CallerLineNumber

CallerMemberName:调用某个方法的主方法名称
CallerFilePath:调用某个方法的主方法所在的类文件地址
CallerLineNumber:调用这个方法所在的行号

class Program
{
    public static void TraceMessage(string message,
        [CallerMemberName] string memberName = null,
        [CallerFilePath] string sourceFilePath = null,
        [CallerLineNumber] int sourceLineNumber = default(int))
    {
        Debug.WriteLine("message: " + message);
        Debug.WriteLine("member name: " + memberName);
        Debug.WriteLine("source file path: " + sourceFilePath);
        Debug.WriteLine("source line number: " + sourceLineNumber);
    }
    static void Main(string[] args)
    {
        TraceMessage("Hello world");
    }
}

输出:

message: Hello world
member name: Main
source file path: C:\Users\Scott\source\repos\ConsoleApp1\ConsoleApp1\Program.cs
source line number: 21

另外,在构造函数,析构函数、属性等特殊的地方调用CallerMemberName属性所标记的函数时,获取的值有所不同,其取值如下表所示:

调用的地方

CallerMemberName获取的结果

方法、属性或事件

方法,属性或事件的名称

构造函数

字符串 ".ctor"

静态构造函数

字符串 ".cctor"

析构函数

该字符串 "Finalize"

用户定义的运算符或转换

生成的名称成员,例如, "op_Addition"。

特性构造函数

特性所应用的成员的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值