一个 DTO class 里面有多个 classes

A single DTO class with multiple classes inside

一个关于 DTO 的简单问题,我有一个 DTO class 汽车,里面还有一些汽车模型的子classes。

    public class Cars
{
    public Ferrari FerrariModel { get; set; }
    public Porshe PorsheModel {get; set; }
    public Mustang MustangModel { get; set; }
}
    public class Ferrari
{  
    public string collor{ get; set; }
    public int year{ get; set; }
    public double price{ get; set; }
}

而Porshe和Mustang就是一模一样的法拉利。问题是我现在不知道如何进行。我尝试类似的东西

Cars cars = new Cars();
FerrariModel fm = new FerrariModel();
cars.FerrariModel.collor = txtCollor.Text;

它不起作用,因为我在 cars.FerrariModel.collor -> "Object reference not set paragraph An Instance of hum object . the hum object declaration" 中收到跟随错误。 我必须承认我什至不知道 "is possible" 或者如果我是 "inventing prograiming",所以任何帮助都会很棒。

  1. 为什么只使用一个class?因为需要在参数中传递单个 DTO:save(Cars car);更新(汽车汽车)
  2. 使用第二个分隔符 class 会迫使我 "overload" 方法:save(Cars car);保存(法拉利法拉利);
  3. 如果我使用单个 class(没有 Ferrari、Porshe 和 Mustang)程序可以工作,但我的 InteliSense 中有很多变量,超过 50 个。

谢谢。

您需要将 fm 实例分配给 Cars.FerarriModel 属性。

Cars cars = new Cars();
FerrariModel fm = new FerrariModel();
cars.FerrariModel = fm;
cars.FerrariModel.collor = txtCollor.Text;

甚至只是:

Cars cars = new Cars();
cars.FerrariModel = new FerrariModel() { collor = txtCollor.Text };