2016-04-21 60 views
-2

我正在为我的主要项目开发工资软件。所有的税务信息(牙买加所得税)都应该计算,增加,然后从秘书通过文本框输入的基本工资中扣除。C#通过点击按钮来计算员工薪水?

每种税种的税率和计算都包含在复选框中。然而,一些税收的计算结果总是不正确的。如果基本工资低于门槛税(22800),则所得税成为负值。如果一个复选框在另一个复选框之前被选中,那么该复选框的结果不正确。

我想知道是否可以更容易地在类中或按钮单击事件中执行员工工资的所有计算。

在此先感谢您的帮助。

+2

绝对在一个类。然后,您可以通过单击按钮在班级中调用该方法。 –

+1

绝对在课堂上。你不应该混合逻辑和用户界面。 – dotctor

+1

你描述了你的应用程序,一个bug的症状,以及两条修复你未知bug的潜在途径。你还没有提供任何代码。任何答案都是基于最佳实践的猜测。但这个问题几乎无法回答。 – Jonesopolis

回答

0

首先,你在这里混合了一些东西。

复选框不应该用于数据存储 - 这些是UI元素,它们的工作是显示结果,或采取输入。

理想情况下,您应该有一个代表您的对象的类 - 在这种情况下,我猜PayRoll。 PayRoll类应该了解自己的税务计算,薪水数额以及与薪资相关的所有内容。

如果您有与要扣除的税额相对应的复选框,请使用某种解析器类,根据所选复选框的状态返回您的税额。但是复选框值应该与Enum相对应。

在你的鼠标点击事件,你应该只有几行,像这样:

// get your tax here into taxAmount variable, then... 

var currentPayroll = //somehow get your payroll where ever you are storing it. 
currentPayroll.CalculateTax(taxAmount); 

你需要阅读更多有关SOLID principles