创建嵌套模型是否需要新的子类?

时间:2012-12-20 02:01:53

标签: c# viewmodel

我在数据建模方面做得不多,而且我遇到了一些对我来说很奇怪的事情。

我的ViewModel看起来像这样

public class HomeIndexViewModel
{
    public Image ForSale { get; set; }
    public Image Sold { get; set; }
    public Image PrivateCollection { get; set; }

    public class Image
    {
        public string ImageUrl { get; set; }
        public string ImageDescription { get; set; }
    }
}

但我觉得必须new所有属性才能阻止null reference exceptions

var hivm = new HomeIndexViewModel();
hivm.ForSale= new HomeIndexViewModel.Image();
hivm.Sold = new HomeIndexViewModel.Image();
hivm.PrivateCollection = new HomeIndexViewModel.Image();

为了只需要使用第一行,是否有更聪明的方法?

var hivm = new HomeIndexViewModel();

1 个答案:

答案 0 :(得分:1)

为什么不使用默认构造函数?

public class HomeIndexViewModel
{
    public Image ForSale { get; set; }
    public Image Sold { get; set; }
    public Image PrivateCollection { get; set; }

    // Default constructor
    public HomeIndexViewModel()
    {
       ForSale = new Image();
       Sold = new Image();
       PrivateCollection = new Image();
    }

    public class Image
    {
       public string ImageUrl { get; set; }
       public string ImageDescription { get; set; }
    }
}

然后当你做

var hivm = new HomeIndexViewModel();

它将调用默认构造函数并初始化属性。

或者我弄错了什么?