我怎么不能访问行中隐藏的实例变量a(int gimmeValue = shinyNewBObject.a;)?我知道我可以使用base关键字来访问实例a。不过,我认为编译器会使用shinyNewBObject中的对象引用来排除静态变量。如果排除了a的静态版本,则a的实例版本将被取消隐藏,因此可以访问。访问由静态变量隐藏的实例变量没有基关键字
这是怎么回事?编译器是否创建了程序集中所有身份的列表,并排除了实例变量,因为它在排除其他变量之前被隐藏,因为它是静态变量?
class A
{
public int a;
}
class B : A
{
new public static int a;
public void m()
{
B shinyNewBObject = new B();
int gimmeValue = shinyNewBObject.a; //Error
gimmeValue = base.a;
}
}
实例变量不能是静态的 –
@AkashKava,它之前的格式很差,但是实例字段是'A'中的。 –
对不起格式差,我认为该网站做到了这一点 – greenonion