我有一个简单的课:
public class Stu
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我喜欢这样:
var stu = new Stu();
Console.WriteLine(nameof(stu.Name));
Run Code Online (Sandbox Code Playgroud)
它运作良好.但是这个:
Console.WriteLine(nameof(new Stu().Name));
Run Code Online (Sandbox Code Playgroud)
或这个:
Console.WriteLine(nameof((new Stu()).Name));
Run Code Online (Sandbox Code Playgroud)
不起作用,编译告诉我:"表达不能用于名称的论证".
我不知道为什么.提示意味着什么?运营商"nameof()"的corret参数类型是什么?
我搜索了网页,这个页面告诉我"表达式可能是属性组或方法组",但是表达式是"new Stu().Name"而不是"property-group"?
Nic*_*pat 14
你可能想要
nameof(Stu.Name)
Run Code Online (Sandbox Code Playgroud)
nameof() 获取一些特殊的语法,因此您不必实例化一个类来获取其属性的名称,以及其他类似的方案.