具有类对象作为属性的属性类

时间:2014-06-22 04:12:07

标签: c# .net

我有一个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"

3 个答案:

答案 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"};