在这种情况下如何从基类中获取正确的值?

时间:2016-12-04 21:38:11

标签: c# asp.net inheritance

当我这样做时,输出始终为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();
    }
}

在这里,print始终为0.我知道我可以这样做,但我不想这样做,因为我的基类的ChangeA()方法总是在不同的地方运行(其他子类);

public class MainClass
{
     public static void Program()
     {
         SubClass sub = new SubClass();
         sub.ChangeA();
         sub.PrintValue();
     }
}

public void PrintValue()
{
    base.ChangeA();
    Console.Write();
}

1 个答案:

答案 0 :(得分:0)

一切正常。检查一下:https://dotnetfiddle.net/7viIiS