我上了一个简单的课:
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的参数中使用表达式”。
我不知道为什么。提示是什么意思?运算符“nameof()”的corret参数类型是什么?
我在网上搜索了this页面,它告诉我“表达式可以是属性组或方法组”,但是表达式“new Stu()。Name”不是“属性组”吗?
最佳答案
你可能想要
nameof(Stu.Name)
nameof()
获得一些特殊的语法,因此您无需实例化一个类即可获取其属性之一的名称以及其他类似情况。关于c# - "nameof "运算符,"expression cannot be used in an argument to nameof",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31444482/