加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 你把你的计算放在你的套或你的得分上.

发布时间:2020-12-15 07:49:16 所属栏目:百科 来源:网络整理
导读:哪个更好 ??? public class Order{ private double _price; private double _quantity; public double TotalCash { get { return _price * _quantity; }} 要么 public class Order{ private double _totalCash; private double _price; private double _q
哪个更好 ???
public class Order
{
   private double _price;
   private double _quantity;

  public double TotalCash
  {      
   get
   {
    return _price * _quantity;
   }
}

要么

public class Order
{

   private double _totalCash;
   private double _price;
   private double _quantity;

  private void CalcCashTotal()
 {
   _totalCash = _price * _quantity
 }

  public double Price
  {      
   set
   {
     _price = value;
     CalcCashTotal();
   }
  }

  public double Quantity
  {      
   set
   {
     _price = value;
     CalcCashTotal();
   }
  }


  public double TotalCash
  {      
   get
   {
    return _totalCash;
   }
}

解决方法

有权衡.如果计算简单,不需要很长时间,就把它放在get中.它使您的生活变得更轻松,因为您不用担心总体价格所依赖的每一套物品都会进行检查,这可能会导致错误.

如果计算需要很多时间,那么您也可以采取混合方式.您可以在所有依赖集中设置一个IsDirtyTotalPrice布尔值,然后在get中进行计算并缓存它,以便只需要在需要时计算变量.你不会在集合中进行计算,因为可能会有很多的计算,并且你可以尽可能多地进行计算.

public class Order
  {
     private double _totalCash;
     private double _price;
     private double _quantity;
     private _IsDirtyTotalCash = true;

  private void CalcCashTotal()
  {
    _totalCash = _price * _quantity
  }

  public double Price
  {      
   set
   {
     _price = value;
     _IsDirtyTotalCash = true;
   }
  }

  public double Quantity
  {      
   set
   {
     _price = value;
     _IsDirtyTotalCash = true;
   }
  }

  public double TotalCash
  {      
   get
   {
        if(_IsDirtyTotalCash)
    {
      _totalCash = CalcTotalCost();
       _isDirtyTotalCash = false;
     }
     return _totalCash;
   }
  }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读