我有兩個類Invoice
和InvoiceProducts
。 InvoiceProducts
是一個集合,並且只有一個名爲Price
的屬性,並且我想要Invoice
擁有一個名爲TotalPrice
的屬性,該屬性將返回InvoiceProducts
集合中的Price
foreach項添加到它。不過,我不確定要這樣做。用目前的方法,我試圖使用它,我得到一個錯誤,說如何從集合的foreach循環中返回值?
「對象引用未設置爲對象的實例。」有沒有辦法做到這一點?
電流方式:
public class Invoice
{
public int InvoiceID { get; set; }
public string ClientName { get; set; }
public DateTime Date { get; set; } = DateTime.Today;
private decimal totalPrice;
public decimal TotalPrice {
get
{
return totalPrice;
}
set
{
foreach(var item in InvoiceProducts)
{
totalPrice += item.Price;
}
}
}
public virtual ICollection<InvoiceProducts> InvoiceProducts { get; set; }
}
public class InvoiceProducts
{
public int InvoiceProductsID { get; set; }
public int InvoiceID { get; set; }
public int ProductID { get; set; }
public int ProductQuantity { get; set; }
public decimal Price { get { return Product.ProductPrice * ProductQuantity; } }
public virtual Invoice Invoice { get; set; }
public virtual Product Product { get; set; }
}
爲InvoiceProducts添加init(例如公共虛擬ICollection InvoiceProducts {get; set;} = new List ();) –
您也可以刪除TotalPrice的set部分並僅使用get(當然,計算回答之前) –
可能重複[什麼是NullReferenceException,以及如何解決它?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i -修理它) – dymanoid