我是 C# 的初学者,目前正在学习有关列表集合等的所有内容。我想知道下面的代码如何/为什么工作:
我创建了一个学生列表:
// Create student list
List<Student> ListStudents = new List<Student>();
我使用 WPF 按钮单击事件将新学生(类(class))添加到此列表(数据是从一些文本框收集的):
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”列表并查看我添加的所有姓名。然而我想知道这究竟是如何不引发一些错误的,因为每次我单击按钮时,我的代码都会重复创建一个名为“student”的学生类。可能有 20 个类(class)都名为“student”,但它们的所有独特信息都保留在 ListStudents 中。它们都在同一个命名空间中。
请原谅我是新人,但我对此非常感兴趣。我知道类是引用类型,因此“学生”类指向包含相关信息的内存块。是不是ListStudents的每个索引都指向这 block 内存,但我的名为“student”的类只指向一个位置,即最近创建的Student的位置?
我的实现是否高于良好实践?
非常感谢。
最佳答案
我相信你正在谈论List<>和类之间的关系。 列表只是指向类的指针。
上面示例中的名称 Student 是一个局部变量,它仅存在于创建它的方法中。它永远不会被再次引用,并且该名称不会保存在 List<> 中。
基本上发生的事情是在内存中创建一个对象。然后学生引用/指向该对象。然后列表指向该对象。最后,当该方法结束时,学生超出范围并永远丢失。
关于c# - 创建了同名的类。这是如何运作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016582/