0

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

我的 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();
4

1 回答 1

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();

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

还是我做错了什么?

于 2012-12-20T02:18:13.613 回答