在我为客户注册产品的系统中,我将对象引用未设置为对象实例。
我的代码:
public class Customer
{
public string Name { get; set; }
public List<PurchasedProduct> Products { get; set; }
}
public class PurchasedProduct
{
public string ProductName { get; set; }
}
public static List<Customer> Customers = new List<Customer>();
private void buttonRegisterProduct_Click(object sender, EventArgs e)
{
Customer procli = Customers[customersListBox.SelectedIndex];
PurchasedProduct procomp = new PurchasedProduct();
procomp.ProductName = PurchasedProductTextBox.Text;
procli.Products.Add(procomp);
PurchasedProductsListBox.Items.Add(procomp.ProductName);
}
我得到的异常对象引用没有设置为对象的实例。在这一行:
procli.Products.Add(procomp);
我赞成任何帮助。
修改
经过一段时间的尝试和思考,我通过这种方式管理:
private void buttonRegisterProduct_Click(object sender, EventArgs e)
{
Customer procli = Customers[customersListBox.SelectedIndex];
PurchasedProduct procomp = new PurchasedProduct();
if(procli.Products == null)
{
procli.Products = new List<PurchasedProduct>
{
new PurchasedProduct
{
ProductName = PurchasedProductTextBox.Text
}
};
PurchasedProductsListBox.Items.Add(procli.Products[0].ProductName);
}
else
{
procomp.ProductName = PurchasedProductTextBox.Text;
procli.Products.Add(procomp);
PurchasedProductsListBox.Items.Add(procomp.ProductName);
}
}
这很有用,但我希望对我达到的这个代码有更多的解释 无论如何,如果有人提出更好,更全面的解决方案,我将不胜感激。