的名称;运算符、表达式不能用于命名的参数中

本文关键字:用于 参数 不能 运算符 表达式 | 更新日期: 2023-09-27 18:02:51

我得到了一个简单的类:

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));

不工作。编译器告诉我:&quot表达式不能用于"的参数

我不知道为什么。小费是什么意思?操作符"nameof()"的正确参数类型是什么?

我已经在网上搜索过了。这个页面告诉我表达式可以是属性组或方法组,但是表达式是new Stu(). name &;不是"属性组"?

的名称;运算符、表达式不能用于命名的参数中

您可能需要

nameof(Stu.Name)

nameof()获得一些特殊的语法,因此您不必实例化类来获取其属性之一的名称,以及其他类似的场景。