2012-12-20 86 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

不,你沒有得到任何錯誤。我的大腦只處於假日模式。謝謝。 –