我有一个prouprty类PropUser:
public class PropUser
{
public int UserId { get; set; }
public int ParentId { get; set; }
public PropProduct Product { get; set; }
}
这里,第3个属性Product是PropProduct的对象,它是另一个属性类
public class PropProduct
{
public int ProductId { get; set; }
public string Name { get; set; }
public int Price { get; set; }
}
现在,在下面的代码中:
PropUser user = new PropUser();
user.Product.Name = "Reebok";
user.Product
抛出“对象引用未设置为对象实例的异常。”
我知道user.Product
为空,所以如何初始化它以便我可以设置user.Product.Name="Reebok"
答案 0 :(得分:3)
如果您希望在创建类后立即初始化它,请创建一个构造函数并在那里初始化它:
public class PropUser
{
public PropUser
{
Product = new PropProduct();
}
public int UserId { get; set; }
public int ParentId { get; set; }
public PropProduct Product { get; set; }
}
答案 1 :(得分:1)
您需要使用PropProduct
运算符初始化new
对象,然后分配值。
试试这个:
PropUser user = new PropUser();
user.Product = new PropProduct();
user.Product.Name = "Reebok";
答案 2 :(得分:1)
如果您想在创建新Product
后立即初始化PropUser
,只需添加一个构造函数,在PropUser
类中初始化它。
public class PropUser
{
//Your Properties
public PropUser()
{
Product = new PropProduct();
}
}
如果你想“按需”这样做,那么有时可以null
,在分配你的字符串之前或之时创建一个新的PropProduct
对象:
PropUser user = new PropUser();
user.Product = new PropProduct {Name = "Reebok"};