我有一个类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的值。那么,我最好的选择是什么?
答案 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;
}
}