我试图为我的其他人BaseListWindow
创建一个ListWindow
类作为基类。每ListWindow
操纵一个不同对象列表(汽车或火车或飞机列表)。每个对象列表都是名为Vehicles的其他对象的成员。
public class Vehicles
{
private List<Car> _cars;
private List<Train> _trains;
// ... getters and setters too
}
BaseListWindow
构造函数接受Vehicle对象,然后像CarsListWindow
这样的派生类使用成员来定义要在BaseListWindow
类中使用的列表。 _vehicles.List<Car>
和BaseListWindow
都会对CarsListWindow
进行操作。
以下是BaseListWindow和CarListWindow
public abstract class BaseListWindow<T> : Window where T : IListElem
{
protected Vehicles _vehicles;
public List<T> _element;
public BaseListWindow(Vehicles v, List<T> listElement)
{
_vehicles = v;
_element = listElement;
}
}
public partial class CarsListWindow : BaseListWindow<Car>
{
public CarsListWindow(Vehicle v, List<Car> listElement) : base(v, listElement)
{
_vehicles = v;
_vehicles.Cars = listElement;
}
}
我有几个问题:
在哪里初始化派生类的成员?在基础构造函数或派生类中?
如何操作基类中的对象列表?当我尝试修改基类中的_element时,对象始终为null,并且我怀疑基类中的Vehicles对象与派生类中的对象不同。
这是一个使用对象的好方法车辆持有少量差异对象列表,然后使用BaseListWindow
和派生类来访问和修改这些对象。
我的想法是BaseListWindow
拥有对象Vehicle,因此它可以访问任何对象列表,但我的问题是访问基类中的这个对象列表。这很难,因为每个派生类的列表类型都不同。
我希望我不会错过这一切。 感谢。