nameof是c#6.0引入的一个新特性,主要作用是方便获取类型、成员和变量的简单字符串,在这个特性推出之前,我们很可能需要通过反射机制来获取。
我们经常会有这样的需求,有一些字符串是我们在项目中经常会用到的,举个例子,可能这样写,当然写法有很多。
public class CommonString
{
public static string Name = "名字";
}
public class Test
{
public void Run()
{
Debug.WriteLine(CommonString.Name);
}
}
有没有更简洁的方式呢?如果有很多的字符串资源,你就必须为每一个字符串取一个变量名字,我觉得还是很繁琐,尤其是中文。比如说一个很长的字符串" 这是一个新的时代! ”,你是不是还得考虑给这个字符串取个好听的变量名字。
这里我给了一个实现方法。
public enum EnumString
{
名字,这是一个新的时代
}
public void Run()
{
Debug.WriteLine(nameof(EnumString.这是一个新的时代));
}