声明一个变量,并打印出这个变量的值,可以这样写:
int myVar = 10;
Console.WriteLine("myVar" + " value is " + myVar.ToString());
输出结果为:
现在有了nameof这个关键字,可以将上面的写法进行更改,如下所示:
int myVar = 10;
Console.WriteLine(nameof(myVar) + " value is " + myVar.ToString());
输出结果为:
结果跟第一种写法一模一样,那nameof的意义是什么呢?
如果有人重构代码,觉得程序中“myVar”这个变量名不好,对这个变量重新命名,将myVar改为count,这时候可以看到编译器中有如下提示:
有三个地方出现了红色的下划线,表示变量名称错误,因为myVar已经不存在了,被改成了count。
要想解决报错,就要把myVar替换成count。代码做如下改动:
注意箭头位置的代码并没有改动,但是编译器不报错。这时候运行程序,结果如下:
可以看到箭头没有改动的地方虽然没有报错,但是对结果来说是错误的,因为myVar这个变量已经不存了,这里应该为count。使用nameof关键字就可以避免这样的情况发生,编译器会帮我们检查变量是否存在。
有关更多c#6.0新语法可以参考文章:https://blog.csdn.net/Tiger_shl/article/details/89981115