应该使用哪种数据类型?十进制或前进

时间:2014-05-27 12:35:59

标签: c# .net winforms oop mvp

在员工MVP模式的工资处理系统中我们有模型类WageInfoEarningInfoDeductionInfoAdvanceInfo以及实体类Advance。 (还有其他几个班级)

EarningInfoDeductionInfoWageInfo(包含在WageInfo中)有构成关系,而且预付金额是工资的一部分(提前支付)我已经建模AdvanceDeductionInfo的关系为汇总因为最终它成为工资的扣除(提前金额应从工资中扣除)。

public class DeductionInfo
{
    public int EmployeeID { get; set; }
    public string Name { get; set; }        
    public decimal LoanInstalmentAmount { get; set; }
    public decimal UniformInstalmentAmount { get; set; }
    public decimal InsuranceInstalmentAmount { get; set; }      
    public decimal AdvanceAmount { get { return Advance.Amount; } set { Advance.Amount = value; } }

    public Advance Advance = new Advance();
}


 public class Advance
{
    public int AdvanceID { get; set; }
    public decimal Amount { get; set; }
    public DateTime EnteredDate { get; set; }
}

因此,当我创建一个DeductionInfo对象时,我只需为AdvanceAmount属性赋值,而且我没有在此实例中初始化Advance类的其他属性。

我的问题是,在DeductionInfo类中,由于提前金额只是一个金额,是否值得在高级字段上使用decimal属性?

1 个答案:

答案 0 :(得分:2)

您应该使用Advance类型而不仅仅是decimal。可能在保存过程中设置了EnteredDate属性。这有助于跟踪提前的时间,也可以区分同一数量的多个进展。

顺便说一句,我很惊讶PayedBack上没有Advance属性来表示它何时被解析。

在它自己的基础上,使用它并不重要,但是在预付款时会记录很多其他信息。没有其他课程,那么就无法跟踪这些信息。