如何强制在基类中声明变量

时间:2014-07-15 12:57:42

标签: c# .net class inheritance

我有一个类Base和一个继承Base的类,A

public class Base
{
   int baseVal;
      public Base()
      {
      }
}

public class A : Base
{
    int aVal;
       public A()
      {
      }
}

当我创建A类型的变量时,如何确保baseVal也被初始化?

有一种可能性,我有A构造函数也执行Base构造函数,如:

public A() : base(0)

但我知道执行A()构造函数后baseVal的值。那么,我最好的选择是什么?

2 个答案:

答案 0 :(得分:1)

如果在执行A()构造函数后,我知道了baseVal的值"你的意思是你在A类的构造函数中计算值,然后你可以将baseVal可访问性更改为protected,并在A类的构造函数的末尾赋值:

public class Base
{
    protected int baseVal;
    // code ommitted
}

public class A : Base
{
    int aVal;
    public A()
    {
        // calculate the value that you need
        baseVal = //some value that you calculate
    }
}

答案 1 :(得分:0)

没有空的构造函数
如果它受保护,则可以通过派生类

进行访问
public class Base
{
      protected int baseVal;
      public Base(int BaseVal)
      {
          baseVal = BaseVal;
      }
}