繁体   English   中英

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

[英]C#: How to use a derived class's const variable in base's constructor

提前致谢,

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

private List<Tire> m_Tires;

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

我首先想到使用protected abstract void initializeTires(); 在派生类中实现,并从Vehicle的构造函数调用。 我在这里看到了不好的编程和容易出错的地方。

因此,简而言之: 是否可以避免此处的代码重复,否则我将不得不与之相处?

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

如何创建一个:

initializeTires(int numberOfTyres); 

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

@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) { }   
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM