1

这是一个菜鸟问题,我很抱歉。我一直在尝试弄清楚如何将对象添加到该数组中。我有一个 Employee 类,一个从 Emp 继承的 Salary 类,以及一个 Hourly 类。我创建了一个这样的数组,

        public Employee[] _Employees;
        ...    
        Employee[] _Employees = new Employee[]{ 
        new Hourly("1000", "Harry","Potter", "L.", "Privet Drive", "201-9090", "40.00", "12.00"),
        new Salary("2201", "A.", "A.", "Dumbledore", "Hogewarts", "803-1230", "1200"),
        new Hourly("3330", "R.","Weasley", "R.", "The Burrow", "892-2000", "40", "10.00"),
        new Salary("4040", "R.", "R.", "Hagrid", "Hogwarts", "910-8765", "1000")
                                                    };

现在我想将对象添加到从文本文件中读取的数组中。我现在正在这样做;

                      if(rstring == "H")
                {
                    string fullName = data.ReadLine();
                    string empNum = data.ReadLine();
                    string address = data.ReadLine();
                    string phoneNum = data.ReadLine();
                    string hrWorked = data.ReadLine();
                    string hrRate = data.ReadLine();

                    string[] splitName = fullName.Split(new Char[] { ' ' });

                    string fName = splitName[0];
                    string mName = splitName[1];
                    string lName = splitName[2];

                     _MyForm._Employees = new Employee[] {new Hourly ( empNum, fName, mName, lName, address, phoneNum, hrWorked, hrRate ) };

这并没有给我任何错误,但是当我查看 _Employees 类中存储的内容时,它只有上面的信息,没有其他信息。如果我需要更好地解释自己,请告诉我。只要让我知道我是否需要以另一种方式去做,或者我需要做什么才能将读取信息添加到这个 _Employees 类。

4

3 回答 3

2

您应该考虑使用List<Employee>. 这将允许您任意数量的元素添加到列表中,而无需自己重新创建:

private List<Employee> employees = new List<Employee>();
public IList<Employee> Employees { get { return this.employees; } }

// ...
this.employees.Add(new Hourly("1000", "Harry","Potter", "L.", "Privet Drive", "201-9090", "40.00", "12.00"));
// .. Add all

然后,当你想添加一个新的,你可以使用:

_MyForm.Employees.Add(new Hourly ( empNum, fName, mName, lName, address, phoneNum, hrWorked, hrRate));
于 2012-09-25T15:52:05.463 回答
2

List在这种情况下,您最好使用 a :

IList<Employee> _Employees;

List 的优点是具有Add可用于将新对象添加到数组末尾的方法。

_MyForm._Employees.Add(new Hourly(...))

如果您想在集合中的其他点插入对象,还有Insert一种方法可以将索引与要添加的对象一起使用。

于 2012-09-25T15:52:46.670 回答
1

使用其他人指出的 List 类和 Add 方法。你在这里做了什么:

_MyForm._Employees = new Employee[] 

在您的示例代码中,您已将MyForm._Employees 的引用重新分配给Employee[] 类型的新对象,而不是添加到其中。您以前包含其他有价值员工的参考很可能已被垃圾收集(如果范围内没有其他参考)。

老实说,我会避开数组。有关更多信息,请参阅

于 2012-09-25T16:03:45.987 回答