如果我用这样的List构建一个View Model:
public class ProductsViewModel
{
public bool ProductBool { get; set; }
public string ProductString { get; set; }
public int ProductInteger { get; set; }
public List<Product> ProductList { get; set; }
}
它工作正常。但我已经看到构造类似模型的代码如下:
public class ProductsViewModel
{
public bool ProductBool { get; set; }
public string ProductString { get; set; }
public int ProductInteger { get; set; }
public List<Product> ProductList { get; set; }
public ProductsViewModel()
{
this.ProductList = new List<Product>();
}
}
额外的构造元素实际上做了什么?
答案 0 :(得分:2)
使用语句
创建ProductsViewModel类的对象时ProductsViewModel obj = new ProductsViewModel();
它会自动实例化ProductList。 obj中的值现在是:
ProductBool = false;ProductString = null;ProductInteger = 0;ProductList = new ProductList();
如果你写obj.ProductList.Count()
,它将给出0
如果删除此构造函数或构造函数内的语句,并创建上面创建的Class ProductsViewModel对象。 obj中的值为:
ProductBool = false;ProductString = null;ProductInteger = 0;ProductList =null
如果你写obj.ProductList.Count()
,它会给出
NullReference的例外