向Employee对象列表添加实例时所有字段为空的问题排查与解决
解决Employee实例字段为空且无法正确添加到列表的问题
你遇到的问题其实有两个核心点,咱们一步步拆解解决:
1. Employee构造函数的赋值逻辑完全搞反了
你的构造函数里是把未初始化的Employee字段赋值给TextBox的Text属性,这不仅拿不到用户输入的内容,还会导致Employee的字段始终是空的。正确的逻辑应该是把TextBox里用户输入的文本,赋值给Employee的对应字段。
修正后的Employee构造函数如下:
public string firstName { get; set; } public string lastName { get; set; } public string ID { get; set; } public Employee(TextBox idTextBox, TextBox firstnTextBox, TextBox lastnTextBox) { // 把TextBox的输入值赋值给Employee的字段 this.ID = idTextBox.Text; this.firstName = firstnTextBox.Text; this.lastName = lastnTextBox.Text; }
2. 使用Append不会修改原列表,应该用Add
List<T>.Append()是LINQ提供的方法,它不会改变你原来的EmployeeList,而是返回一个包含新元素的新序列。如果你想把新实例添加到原列表中,应该用List自带的Add()方法。另外注意你原来的类名拼写是Management,别写成Mangament了。
修正后的添加代码:
Management.EmployeeList.Add(new Employee(IDTextBox, firstNameTextBox, lastNameTextBox));
这样修改之后,你添加的Employee实例就能正确获取到TextBox的输入值,并且成功加入到静态列表里了。
内容的提问来源于stack exchange,提问作者Or Shani
相关产品推荐
相关产品推荐

