借助get和set方法计算变量值



我在get和set方法的帮助下获取数据。我想计算waste的值。这就是我试图解决这个问题的方式。

class OSSP
{
private decimal waste;
public int DocNum { get; set; }
public string U_ItemCode { get; set; }
public string U_ItemName { get; set; }
public string U_ItemDesc { get; set; }
public string U_WetProcess { get; set; }
public string U_Color { get; set; }
public string U_Size { get; set; }
public decimal U_knitgWeight { get; set; }
public decimal U_FinishWeight { get; set; }
OSSP ossp ;
public decimal Waste
{
get => waste;
set
{
waste = ossp.U_knitgWeight - ossp.U_FinishWeight;
}
}
}

由于您希望Waste是根据其他属性的值计算的,并且在尝试访问此属性时希望具有此值,因此需要将计算代码放入getter中。

public decimal Waste
{
get => this.U_knitgWeight - this.U_FinishWeight;
}

此外,允许设置这个值是没有意义的,因为它的意义是基于对外部不可见的内部状态的计算。这意味着您可以完全删除setter。通过这样做,您还可以删除private decimal waste;字段,因为它现在是多余的。

编辑:

我注意到的另一件事是,您有一个内部OSSP ossp;字段,它从未在代码中的任何位置设置。我假设您要使用当前对象的实际值进行计算。因此,在这种情况下,您需要在用于计算的2个属性之前使用this.

如果我错了,请纠正我,因为你可能有目的地制作这个OSSP ossp;字段

get
{
return ossp.U_knitgWeight - ossp.U_FinishWeight;
}

当调用get方法时,它会在计算后返回值。

最新更新