“nameof”运算符,“表达式不能用于名称的参数”

时间:2015-07-16 02:35:59

标签: c# c#-6.0

我有一个简单的课程:

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”不是“属性组” “?

1 个答案:

答案 0 :(得分:14)

你可能想要

nameof(Stu.Name)

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