创建了具有相同名称的类.这是怎么回事

本文关键字:怎么回事 创建 | 更新日期: 2023-09-27 17:59:23

我是C#的初学者,目前正在学习所有关于List集合等的知识。我想知道下面的代码是如何/为什么工作的:

我创建了一个学生列表:

// Create student list
List<Student> ListStudents = new List<Student>();

我使用WPF按钮点击事件将一个新的学生(一个类)添加到这个列表中(数据是从一些文本框中收集的):

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个班级都被命名为"student",但他们所有的唯一信息都保留在ListStudents中。这些都在同一个命名空间中。

请原谅我是新来的,但我对此很感兴趣。我知道类是参考类型,所以"学生"类指向具有相关信息的记忆块。ListStudents的每个索引都指向这个内存块,但我的名为"student"的类只指向一个位置,那就是最近创建的student的位置吗?

我的实施是否高于良好实践?

非常感谢。

创建了具有相同名称的类.这是怎么回事

我相信您谈论的是List<>之间的关系和班级。列表只是指向类的指针。

上面例子中的student是一个局部变量,它只存在于创建它的方法中。它将永远不会被再次引用,并且该名称不会保存在List<>中。

基本上,正在发生的事情是在内存中创建一个对象。然后学生参考/指向该对象。然后列表指向该对象。最后,当方法结束时,学生就超出了范围,永远迷失了方向。