C#对象引用未设置为对象的实例.在列表中实例化类?

Tae*_*int 9 c# collections encapsulation list object

public class OrderItem
{
    public string ProductName { get; private set; }
    public decimal LatestPrice { get; private set; }
    public int Quantity { get; private set; }
    public decimal TotalOrder { get {return LatestPrice * Quantity;}}

    public OrderItem(string name, decimal price, int quantity)
    {

    }

    public OrderItem(string name, decimal price) : this(name, price, 1)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

上面是班级,只是为了一些背景.

public void AddProduct(string name, decimal price, int quantity)
{
    lstOrderitem.Add(new OrderItem(name, price, quantity));           
}
Run Code Online (Sandbox Code Playgroud)

在AddProduct方法内部的代码是我得到标题中声明的错误.

我只是想实例化该类并将其添加到一个集合中,以便在我的表单程序的列表框中显示.

将在按钮单击事件上调用"AddProduct"

Error = NullReferenceException - 未将对象引用设置为对象的实例.

我想知道是否有人知道为什么会发生这种情况,因为我认为,因为我正在创建一个类的新实例,同时将它添加到列表中,它也会引用一些东西.谢谢,如果有人知道问题是什么.

编辑

    public List<OrderItem> lstOrderitem{ get; private set; }
    public int NumberOfProducts { get; private set; }
    public decimal BasketTotal { get; private set; }

    public ShoppingBasket()
    {
        //List<OrderItem> lstOrderitem = new List<OrderItem>();
    }

    public void AddProduct(string name, decimal price, int quantity)
    {
        lstOrderitem.Add(new OrderItem(name, price, quantity));


    }
Run Code Online (Sandbox Code Playgroud)

das*_*ght 24

你应该lstOrderitem在构造函数中初始化属性,如下所示:

编辑

public MyClass() {
    lstOrderitem = new List<OrderItem>();
}
Run Code Online (Sandbox Code Playgroud)

PS Microsoft建议以大写字母开始使用属性的名称,以避免与成员变量混淆,成员变量应以小写字母开头.