我是C#的初学者,目前正在学习有关List集合等的所有知识。我想知道下面的代码如何/为什么工作:我创建一个学生列表:// Create student listList<Student> ListStudents = new List<Student>();我使用WPF按钮单击事件将一个新的Student(一个班级)添加到此列表中(数据是从某些文本框中收集的):private void btnCreateStudent_Click(object sender, RoutedEventArgs e){ Student student = new Student(); student.FirstName = txtFirstName.Text; student.LastName = txtLastName.Text; student.City = txtCity.Text; // Add student to list ListStudents.Add(student);}现在,所有这些工作正常,我可以遍历“ ListStudents”列表,并查看我添加的所有名称。但是,我想知道这到底有什么错,因为每次单击按钮时,我的代码都会反复创建一个名为“学生”的学生类。可能有20个全都称为“学生”的班级,但它们的所有唯一信息都保留在ListStudents中。这些都在同一个命名空间中。原谅我是我的新手,但对此我非常感兴趣。我知道类是引用类型,因此“学生”类指向具有相关信息的内存块。是不是ListStudents的每个索引都指向该内存块,但是我的类名为“ student”的类却只指向一个位置,即最近创建的Student的位置?我的实现高于良好实践吗?非常感谢。 最佳答案 我相信您正在谈论List 与该类之间的关系。列表只是指向类的指针。在上面的示例中,名称student是一个局部变量,仅存在于其创建方法中。它将不再被引用,并且该名称不会保存在List 中。基本上发生的是在内存中创建一个对象。然后,学生引用/指向该对象。然后列表指向该对象。最终,当方法结束时,学生将超出范围并永远迷路。