如何计算篮子里物品的总量

本文关键字:何计算 计算 | 更新日期: 2023-09-27 17:54:47

下面是我为购物篮创建的类。我在朝着实现预期结果的方向前进吗?

namespace Basket
{
   public class ShoppingBasket
    {
        private string productName;
        private decimal latestProductValue;
        private int quantity;
        private decimal Total;
        public void AddProduct( string productName, decimal latestProductValue, int quantity)
        {
            string ProductName = productName;
            decimal LatestProductValue = latestProductValue;
            int Quantity = quantity;
        }
        public string ProductName
        {
            get { return productName; }
            set
            {
                if (productName == ProductName)
                    productName = ProductName;
            } 
        }
        public decimal LatestProductValue
        {
            get { return latestProductValue; }
            set
            {
                if (latestProductValue == LatestProductValue)
                    latestProductValue = LatestProductValue;
            }
        }

        public int Quantity
        {
            get { return quantity; }
            set
            {
                if (quantity > 0)
                    quantity = value;
            }   
        }
        public decimal GetTotal
        {
            get { return quantity * latestProductValue; }
        }
    }
}

如何计算篮子里物品的总量

示例项目:https://dl.dropboxusercontent.com/u/70244715/BasketTest.rar

你应该这样做:

<<p> BasketItem类/strong>
public class BasketItem {
  private string itemName = string.Empty;
  private decimal itemPrice = 0;
  public string ItemName {
    get {
      return itemName;
    }
    set {
      itemName = value;
    }
  }
  public decimal ItemPrice {
    get {
      return itemPrice;
    }
    set {
      itemPrice = value;
    }
  }
}
<<p> 篮子类/strong>
public class Basket {
  private List<BasketItem> lstBasketItems = new List<BasketItem>();
  public void AddItemToBasket(BasketItem addedItem) {
    lstBasketItems.Add(addedItem);
  }
  public decimal CalculateTotal() {
    decimal total = lstBasketItems.Sum(x => Convert.ToDecimal(x.ItemPrice));
    return total;
  }
}

在你的表单中使用它们:

BasketItem insItem = new BasketItem();
Basket insBasket = new Basket();
insItem.ItemName = "My Item 1";
insItem.ItemPrice = 10;
insBasket.AddItemToBasket(insItem);
Console.WriteLine(insBasket.CalculateTotal());

这是一个非常简单的例子,没有经过测试。我试着告诉你应该如何实现它。也不是说这个示例不处理在页面调用之间存储篮。您很可能会使用会话状态或类似的东西来实现逻辑。