In my system to register products for customers, I'm having the exception Object reference not set to an instance of an object.
My code:
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);
}
I'm getting the exception Object reference not set to an instance of an object. in this line:
procli.Products.Add(procomp);
I apreciate any help.
EDIT
After a time trying and thinking, I managed by this way:
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);
}
}
This worked, but I would like more explanation about this code that I reached.
Anyway, I'd be grateful if someone present a better and more comprehensive solution.