当我这样做,输出总是0,我知道这是一个预期的行为。但我真的很想知道是否有任何方法可以访问派生类的更改值?就像反射或像这样...如何在这种情况下从基类中获得正确的值?
public class BaseClass
{
protected int a=0;
public void ChangeA()
{
a=5;
}
}
public class SubClass : BaseClass
{
public void PrintValue()
{
Console.Write(a);
}
}
谢谢...
编辑:我注意到,我得给这个问题的更多细节。
public class MainClass
{
public static void Program()
{
BaseClass baseC = new BaseClass();
baseC.ChangeA();
SubClass sub = new SubClass();
sub.PrintValue();
}
}
在这里打印始终是0。我知道我能做到这样,但我不想这样做,因为我的基类的ChangeA()方法总是在不同的地方(其他子类)运行;
public class MainClass
{
public static void Program()
{
SubClass sub = new SubClass();
sub.ChangeA();
sub.PrintValue();
}
}
或
public void PrintValue()
{
base.ChangeA();
Console.Write();
}
因此,执行'ChangeA()'和访问它的主要原因是什么?我不明白这里有什么问题。 – AgentFire