我在数据建模方面做得不多,而且我遇到了一些对我来说很奇怪的事情。
我的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();
答案 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();
它将调用默认构造函数并初始化属性。
或者我弄错了什么?