通过派生类进行对象访问和修改

时间:2016-01-04 13:32:13

标签: c# wpf

我试图为我的其他人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;
        }
 }

我有几个问题:

  1. 在哪里初始化派生类的成员?在基础构造函数或派生类中?

  2. 如何操作基类中的对象列表?当我尝试修改基类中的_element时,对象始终为null,并且我怀疑基类中的Vehicles对象与派生类中的对象不同。

  3. 这是一个使用对象的好方法车辆持有少量差异对象列表,然后使用BaseListWindow和派生类来访问和修改这些对象。

  4. 我的想法是BaseListWindow拥有对象Vehicle,因此它可以访问任何对象列表,但我的问题是访问基类中的这个对象列表。这很难,因为每个派生类的列表类型都不同。

    我希望我不会错过这一切。 感谢。

0 个答案:

没有答案