基本上我想做的是在客户列表中添加客户,客户列表中有一个属性BillToContact。我想为客户创建一个实例BillToContact。

public class Customer
{
    public string  ID { get; set; }
    public string  AccountName { get; set; }
    public Contact BillToContact { get; set; }
}

public class BillToContact
{
    public string firstname { get; set; }
    public string LastName  { get; set; }
}

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}


//以下是尝试将BillToContact添加到客户的尝试

public void test()
{
  List<Customer> Customer = new List<Customer>();

  Customer x = new Customer();
  x.ID   = "MyId";
  x.AccountName = "HelloAccount";
  x.BillToContact.FirstName = "Jim";
  x.BillToContact.LastName  = "Bob";

  Customer.Add(x);
}


此尝试的错误是


  你调用的对象是空的。


我也曾尝试在BillToContact内创建Customer的实例,但没有成功。为了避免造成任何混乱,问题在于我要在“客户”列表中创建一个BillToContact实例。

最佳答案

您必须实例化属性成员,然后才能设置其属性:

Customer x = new Customer();
x.ID   = "MyId";
x.AccountName = "HelloAccount";
x.BillToContact = new BillToContact();
x.BillToContact.FirstName = "Jim";
x.BillToContact.LastName  = "Bob";


仅实例化父类不会自动实例化任何组合的类(除非您在构造函数中这样做)。

关于c# - 设置项目的属性值会导致NullReferenceException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28159796/

10-08 22:38