我对nameof()
运算符有些困惑。例如,我不能在另一个类中使用类的私有字段来使用nameof()
,但我可以使用非静态属性中的public
非static
字段,所以我不需要实例化对象。
这是一致的吗?为什么成员访问修饰符对nameof()
很重要?
class A
{
private int X;
public int Y;
public A()
{
var x = nameof(A.X);//OK
var y = nameof(A.Y);//OK
}
}
class B
{
public B()
{
var x = nameof(A.X);//Compilation error
var y = nameof(A.Y);//OK
}
}