问题描述
我有以下业务逻辑:
public decimal Price
{
get {
if (OrderSize == Size.Small)
{
_price = decimal.Multiply(_price,(decimal)0.8);
}
else if (OrderSize == Size.Large)
{
_price = decimal.Multiply(_price,(decimal)1.2);
}
return _price;
}
set {
_price = value;
}
}
价格应仅根据所选的 OrderSize 更改一次。检索此订单时,它会再次计算价格,这显然不是我想要的。让它只执行一次的最佳方法是什么?
解决方法
离你不远了。不要再次分配_price变量,只需返回计算即可。
public decimal Price
{
get
{
if (OrderSize == Size.Small)
{
return decimal.Multiply(_price,(decimal)0.8);
}
else if (OrderSize == Size.Large)
{
return decimal.Multiply(_price,(decimal)1.2);
}
else
{
return _price;
}
}
set
{
_price = value;
}
}