【问题标题】:What should be the data type to be used? Decimal or Advance应该使用什么数据类型?小数或前进
【发布时间】:2014-05-27 12:35:58
【问题描述】:

在员工MVP模式的工资处理系统中,我们有模型类WageInfoEarningInfoDeductionInfoAdvanceInfo和实体类Advance。 (与其他几个类)

EarningInfoDeductionInfoWageInfo 有组合关系(包含在WageInfo 中),而且由于预付款是工资的一部分(预付),我已经模拟了Advance 与@ 的关系987654330@作为汇总,因为最后变成了扣工资(预支款要从工资中扣除)。

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 类中,由于预付金额只是一个金额,是否值得在 Advance 字段上使用 decimal 属性?

【问题讨论】:

  • 你是对的。任一用户都是普通属性。或使用 Advance Object Property 本身

标签: c# .net winforms oop mvp


【解决方案1】:

您应该使用Advance 类型,而不仅仅是decimalEnteredDate 属性可能是在保存过程中设置的。这对于跟踪预付款的时间以及区分相同金额的多个预付款非常有用。

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

就其本身而言,您使用哪个并不重要,但是在进行预付款时会记录许多其他信息。如果没有其他类,则无法跟踪该信息。

【讨论】:

  • PayedBack 是什么意思?实际上,预付款最终会从 NetWage 中扣除,以计算 BalanceWage,即实际支付的金额。
  • 好的,如果在员工下次获得报酬时全额偿还,那么就不需要PayedBack 属性。是我不理解您的业务规则,但我仍然会在其中留下该评论作为另一条信息的示例,该信息可能需要与您认为只是一个简单的十进制值相关联。
猜你喜欢
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多