我有一个简单的课程:
public class Stu
{
public string Name { get; set; }
}
如果我喜欢这样:
var stu = new Stu();
Console.WriteLine(nameof(stu.Name));
效果很好。 但是这个:
Console.WriteLine(nameof(new Stu().Name));
或者这个:
Console.WriteLine(nameof((new Stu()).Name));
不起作用,编译器告诉我:“表达式不能用于名称的参数”。
我不知道为什么。提示意味着什么?运营商“nameof()”的corret参数类型是什么?
我搜索了网页,this页面告诉我“表达式可能是属性组或方法组”,但是表达式“new Stu()。Name”不是“属性组” “?
答案 0 :(得分:14)
你可能想要
nameof(Stu.Name)
nameof()
获得了一些特殊的语法,因此您不必实例化一个类来获取其中一个属性的名称,以及其他类似的方案。