public struct customerItemListStruct {
public int ID { get; set; }
public string name { get; set; }
public double rate { get; set; }
public int quantity { get; set; }
//public double total = rate * quantity;
}
我想预先设置总计的值。
建议我最好的方法! 谢谢!
答案 0 :(得分:5)
您可能不应该为此实体使用结构。 Mutable structs are evil和down this way madness lies。
以下可能更合适:
public class CustomerItemList {
public int ID { get; set; }
public string Name { get; set; }
public double Rate { get; set; }
public int Quantity { get; set; }
public double Total {
get { return Rate * Quantity; }
}
}
答案 1 :(得分:4)
public double total
{
get
{
return rate * quantity;
}
}
答案 2 :(得分:2)
现有答案涵盖了最简单的方法。但是,如果您可能访问Total的次数远远超过您可能更新的费率和数量,那么您可以更改左右,而不是每次访问时计算Total
,只需重新计算它更改Rate
或Quantity
。
public class CustomerItemListStruct {
public int ID { get; set; }
public string Name { get; set; }
public double Total { get; private set; }
public double Rate {
get { return _rate;}
set { _rate = value; UpdateTotal();}
}
private double _rate;
public int Quantity {
get { return _quantity;}
set { _quantity = value; UpdateTotal();}
}
private int _quantity;
private void UpdateTotal()
{
Total = Quantity*Rate;
}
}
通常让Total
进行计算是最好的方法,但在重要的情况下了解替代方案总是有用的。