[英]How can I get the correct value from base class on this kind of situation?
当我这样做时,输出始终为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();
}
看起来您忘了调用sub.ChangeA()方法,这就是“ a”等于0的主要原因
一切正常。 检查它: https : //dotnetfiddle.net/7viIiS
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.