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 - 未将对象引用设置为对象的实例。
我想知道是否有人知道为什么会发生这种情况,因为我认为因为我正在创建一个类的新实例,同时将它添加到列表中,它也会引用一些东西。谢谢,如果有人知道问题是什么。
修改
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));
}
答案 0 :(得分:23)
您应该在构造函数中初始化lstOrderitem
属性,如下所示:
修改强>
public MyClass() {
lstOrderitem = new List<OrderItem>();
}
P.S。 Microsoft建议以大写字母开始使用属性名称,以避免与成员变量混淆,成员变量应以小写字母开头。
答案 1 :(得分:3)
您似乎没有初始化参考lstOrderitem
。如果参考值为null
,请调试代码,在使用之前需要初始化lstOrderitem
。
答案 2 :(得分:0)
看起来您没有初始化您的参考 lstOrderitem 。如果参考值 null ,请调试代码,在使用之前需要初始化 lstOrderitem 。
public MyClass() {
lstOrderitem = new List<OrderItem>();
}