我尝试使用以下方法引用已插入到数组中的对象的属性时遇到问题.
public static void AddEmployees()
{
string empID;
decimal empWage;
int count = 0;
do
{
Console.Write("Please enter the employee ID number: ");
empID = Convert.ToString(Console.ReadLine());
Console.Write("Please enter the employee wage: ");
empWage = Convert.ToDecimal(Console.ReadLine());
var employeeObj = CreateEmployee(empID, empWage);
employeeArray[count] = employeeObj;
++count;
} while (count < 6);
}
Run Code Online (Sandbox Code Playgroud)
我想以某种可读的格式打印出这个数组中的信息,但我不知道如何引用empWage或empID.理想情况下,我想使用某种foreach循环,如下所示:
public static void DisplayEmployees()
{
foreach (var obj in employeeArray)
{
Console.WriteLine("Employee ID: {0}", empID);
Console.WriteLine("Employee Wage: {0}", empWage);
Console.WriteLine();
}
}
Run Code Online (Sandbox Code Playgroud)
你几乎拥有它:
foreach (var obj in employeeArray)
{
Console.WriteLine("Employee ID: {0}", obj.empID);
Console.WriteLine("Employee Wage: {0}", obj.empWage);
Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)
更新:
如果employeeArray是类型object[],则不能直接引用类中定义的属性Employee.
如何解决:
而不是object[]使用List<Employee>,例如:
public static List<Employee> employees = new List<Employee>();
Run Code Online (Sandbox Code Playgroud)
您还需要更改向列表中添加项目的方式:
var employeeObj = CreateEmployee(empID, empWage);
employees.Add(employeeObj);
Run Code Online (Sandbox Code Playgroud)
最后,返回类型CreateEmployee应该是Employee(不是object).