gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:31:18 26 4
gpt4 key购买 nike

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)
{

}
}

上面是类,只是为了一些背景。

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

在 AddProduct 方法中的代码中,出现了标题中所述的错误。

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

“AddProduct”将在按钮点击事件中被调用

Error = NullReferenceException - Object reference not set to an instance of an object.

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

编辑

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


}

最佳答案

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

编辑

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

附言Microsoft 建议您的属性名称以大写字母开头,以避免与成员变量混淆,成员变量应以小写字母开头。

关于C# 对象引用未设置为对象的实例。在列表中实例化类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com