您当前的位置: 首页 > 

寒冰屋

暂无认证

  • 1浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

神奇的[Caller*]属性

寒冰屋 发布时间:2022-03-19 22:38:03 ,浏览量:1

前言

上次,我们《使用 CallerArgumentExpression 检查弃元参数》,它实际是利用编译器编译时将变量名称传入。

其实,.NET中提供了多个[Caller*]属性,帮助我们轻松获取调用者信息。

CallerFilePathAttribute

允许获取包含调用方的源文件的完整路径。 

FilePath();

static void FilePath([CallerFilePath] string filepath = "")
{
    Console.WriteLine(filepath);
}
CallerMemberNameAttribute

允许获取方法调用方的方法或属性名称。

public void DoProcessing()
{
    MemberName();
}

static void MemberName([CallerMemberName] string name = "")
{
    Console.WriteLine(name);
}

//输出
DoProcessing
CallerLineNumberAttribute

允许获取源文件中调用方法的行号。

LineNumber();

static void LineNumber([CallerLineNumber] int lineNumber = 0)
{
    Console.WriteLine(lineNumber);
}
CallerArgumentExpressionAttribute

允许捕获传递给方法的表达式。

ThrowIfOutOfRange(age             
关注
打赏
1665926880
查看更多评论
0.1534s