我想这a.ID()返回0和b.ID()返回1,这里是我的代码:更改子类中的静态变量不改变它的父类
public class A {
public static int id;
public int ID() {return id;}
}
public class B : A { }
public class Main {
void Program() { //This executes when I execute the program
A.id = 0;
B.id = 1;
}
}
但不起作用,这也不起作用:
public class A {
public static int id;
public int ID() {return id;}
}
public class B : A {
public new static int id; //id is actually 1 but ID() is still 0
}
public class Main {
void Program() { //This executes when I execute the program
A.id = 0;
B.id = 1;
}
}
我该如何解决这个问题?
为什么你需要这个?为什么你需要它是静态的? –
将你的'static int'变成'properties'。 –
[new modifier](https://msdn.microsoft.com/en-us/library/435f1dw2.aspx)只是隐藏一个成员。你需要重写它,但它是静态的,所以你不能。无论如何,你为什么要为它有一个静态ID和一个实例getter? –