C# 类没有响应
本文关键字:响应 | 更新日期: 2023-09-27 17:57:12
我正在制作一个程序,根据员工的工作时间和工资率计算员工的工资。但是,当我尝试使用我在另一个类中创建的方法时:
public void GrossPay(int i)
{
double GrossPay = 0.0;
GrossPay = Hours[i] * PayRate[i];
Wages[i] = GrossPay;
}
尝试在我的主程序中使用它:
public static void Payroll()
{
int employeeID = 0;
int hours = 0;
double payRate = 0.0;
double wages = 0.0;
Payroll payroll = new Payroll(employeeID, hours, payRate, wages);
for (int i = 0; i < payroll.EmployeeID.Length; i++)
{
Console.WriteLine("Employee ID: {0}", payroll.EmployeeID[i]);
Console.WriteLine("How many hours does employee {0} work?", payroll.EmployeeID[i]);
string h = Console.ReadLine();
payroll.Hours[i] = Convert.ToInt32(h);
Console.WriteLine("What is the hourly wage for employee {0}?");
string w = Console.ReadLine();
payroll.PayRate[i] = Convert.ToInt32(w);
Console.WriteLine("Employee ID: {0} 'nGross Pay: {1}", payroll.EmployeeID[i], payroll.Wages[i]);
Console.ReadLine();
}
}
无论如何,总工资回报为 0。请帮忙!
您从未调用过已构建的方法;在从 Wages
属性读取之前,应调用它。
// ...
payroll.PayRate[i] = Convert.ToInt32(w);
payroll.GrossPay(i);
Console.WriteLine("Employee ID: {0} 'nGross Pay: {1}", payroll.EmployeeID[i], payroll.Wages[i]);
// ...
这将解决您的问题,但我建议您尝试面向对象的范式。我建议您创建一个 Employee
类,该类将具有 Id
、PayRate
、Hours
等属性和一个属性Wages
public double Wages
{
get
{
return PayRate * Hours;
}
}
然后,Payroll
类可以容纳一系列员工:List<Employee> Employees;