我有一个有9个不同属性的类,每个属性都是一个类

public class Vehicles
{
  Car car; //class
  Train train;  //class
  Plane plane; //class
}

我把这个vehicle对象传递给一个方法
例如
var Vehicles = new Vehicles();
Vehicles.Car = new Car()
Object1.WorkOutTransport(vehicle)

我需要在object1中做的是在不使用switch语句和检查其他语句是否为空的情况下实例化哪个“vehicle”的训练
这不是一个“家庭作业问题”……我把它简化为只说明问题
实际车辆类有9个可能被实例化的类

最佳答案

我建议你重新考虑一下你的设计。
为什么不让所有的车辆类型实现一个公共接口,然后让IVehicle类有一个名为Vehicles的属性。
你只需要担心一处房产。

public Interface IVehicle
{
    ... //Properties Common to all vehicles
}

public class Car : IVehicle
{
    ... //Properties to implement IVehicle
    ... //Properties specific to Car
}

public class Vehicles
{
    public IVehicle Vehicle { get; set; }
}

var vehicles = new Vehicles();
vehicles.Vehicle = new Car();
... //Do whatever else you need to do.

10-08 14:06