如何预先设置公共结构中的值?

时间:2012-02-17 12:05:04

标签: c# .net struct

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; 

}

我想预先设置总计的值。

建议我最好的方法! 谢谢!

3 个答案:

答案 0 :(得分:5)

您可能不应该为此实体使用结构。 Mutable structs are evildown 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,只需重新计算它更改RateQuantity

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进行计算是最好的方法,但在重要的情况下了解替代方案总是有用的。