nameof()

mac2024-05-09  32

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)