列表未初始化

时间:2014-11-04 20:32:12

标签: c# .net winforms visual-studio-2013

在我为客户注册产品的系统中,我将对象引用未设置为对象实例。
我的代码:

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);
    }
}

这很有用,但我希望对我达到的这个代码有更多的解释 无论如何,如果有人提出更好,更全面的解决方案,我将不胜感激。

0 个答案:

没有答案