好吧,最初我在每个派生类中有几个具有不同值的常量(如 MAX_SPEED)。这个想法是在基类的某些方法中使用这些值。那时我意识到我不能用常量做到这一点,所以我创建了只读属性。
我需要一种在实例化时将这些值分配给私有字段的方法,最好是在基类中。但首先我必须评估派生类中的原始值。由于这些是属性,我在定义时找不到初始化它们的方法,所以唯一的方法是在派生的构造函数中。
这就是问题所在:值在分配给基类中的私有字段后被初始化。我逃脱的解决方案是创建一个虚拟方法并在那里进行分配。
有没有办法从派生类调用基构造函数,以便首先调用派生构造函数的代码?
class BaseClass
{
public BaseClass()
{
System.Console.WriteLine("This should be shown after");
}
}
class DerivedClass : BaseClass
{
public DerivedClass() : base()
{
System.Console.WriteLine("This should be shown first");
}
}
当然,在示例中,它会以相反的方式工作。有解决办法吗?