0
点赞
收藏
分享

微信扫一扫

nameof()


01作用:运算符获取变量、类型或成员的名称作为字符串常量

Console.WriteLine(nameof(System.Console));//Console
Console.WriteLine(nameof(List<int>)); //list
Console.WriteLine(nameof(List<int>.Count));//Count

02nameof 运算符在编译时进行求值,在运行时无效。
可以使用 nameof 运算符使参数检查代码更易于维护:

class Student
{
public static void Sum(string arg)
{
if (arg==null)
{
//当将空引用传递给不接受它作为有效参数的方法时引发的异常。
throw new ArgumentNullException("arg");
}
}
}

我觉得args这个参数名不合适,想改一个更直观的名字filePaths,表示我要接受一个文件路径的数组。然后我们就直接把args这个名字给重构了,but,把 throw new ArgumentNullException(“arg”);给忘了,因为它仅仅是个字符串,书写的时候容易拼错,重构的时候也无法对它进行一个是否需要重构的分析,导致一些麻烦事情。
那么nameof运算符的目的就是来解决这个问题的。

class Student
{
public static void Sum(string arg)
{
if (arg==null)
{
//当将空引用传递给不接受它作为有效参数的方法时引发的异常。
throw new ArgumentNullException(nameof(arg));
}
}
}

nameof 主要作用是方便获取类型、成员和变量的简单字符串名称(非完全限定名),意义在于避免我们在代码中写下固定的一些字符串,这些固定的字符串在后续维护代码时是一个很繁琐的事情
我们把固定的 “arg” 替换成等价的 nameof(arg)


举报
0 条评论