C#:如何在base的构造函数中使用派生类的const变量

时间:2010-12-11 20:46:56

标签: c# constructor virtual instantiation derived-class

提前致谢,

我的情况是我有一个名为 Vehicle 的抽象类,它包含:

private List<Tire> m_Tires;

问题是列表中的轮胎数量是在派生类中确定的,并且在一个和另一个之间有所不同,但实例化所需的代码是相同的,因此我非常希望避免代码重复并将其置于代码(实例化 m_Tires )在抽象的 Vehicle 类的构造函数中。

我首先考虑使用protected abstract void initializeTires();在派生类中实现,并从Vehicle的构造函数中调用。我在这里看到它编程错误且容易出错。

所以简而言之:是否可以避免代码重复,或者我只需要与之保持和平?

3 个答案:

答案 0 :(得分:4)

您可以创建一个protected构造函数并将其链接。

答案 1 :(得分:1)

如何创建:

initializeTires(int numberOfTyres); 

在基类中,并使用派生类中的正确参数调用它。

答案 2 :(得分:1)

@Oded,其中一个例子是

public abstract class MyAbstract {
   private List<Tire> m_Tires;

   protected MyAbstract(int count) {
      m_Tires = new List<Tire>(count);
   }
}

public class MyClass : MyAbstract {
   public MyClass(int count) : base(count) { }   
}
相关问题