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)
{
}
}
위의 클래스는 일부 배경에 해당합니다.C# 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 목록 내에서 클래스 인스턴스화?
public void AddProduct(string name, decimal price, int quantity)
{
lstOrderitem.Add(new OrderItem(name, price, quantity));
}
코드에서 AddProduct 메서드 내에서 제목에 오류가 표시됩니다.
클래스를 인스턴스화하고 양식 프로그램의 목록 상자에 표시되도록 컬렉션에 추가하려고합니다. 개체 참조가 개체의 인스턴스로 설정되지 않았습니다 -
은 "AddProduct은"
오류 = NullReferenceException이이 버튼을 클릭 이벤트에서 호출됩니다.
내가이 클래스의 새로운 인스턴스를 만들 때 이후로 생각했기 때문에 아무도이 클래스가 참조 할 수있는 목록을 추가하는 동안 그 이유를 알고 있는지 궁금합니다. 문제가 무엇인지 아는 사람이 있으면 고맙습니다.
당신은 다음과 같이 생성자에서 lstOrderitem
속성을 초기화 할 필요가
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));
}
디버거를 사용하면 나중에 도움이 될 것입니다. –
'// List lstOrderitem = new List ();'가 거의 틀림 :'/ List '부분을 제거하여 로컬 선언이 아닌 멤버 속성의 초기화로 만들어야합니다. –
dasblinkenlight
Ahh Okay이 모든 것을 시도해보고 나를 도와 주신 분들께 감사드립니다. – Taemint