2012-12-20 45 views
0

我对数据建模没有太多的工作,而且我也遇到了一些对我来说似乎很陌生的事情。创建嵌套模型是否需要新的子类?

我的视图模型看起来像这样

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

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

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

它会调用默认的构造函数和初始化属性。

还是我错了?

+0

不,你没有得到任何错误。我的大脑只处于假日模式。谢谢。 –