已创建 类 同名。这是如何运作的?
Created classes with the same name. How does this work?
我是 C# 的初学者,目前正在学习有关列表集合等的所有知识。我想知道 how/why 下面的代码是否有效:
我创建了一个学生列表:
// 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" 的 Student Class。可能有 20 个 class 都命名为 "student,",但它们所有的唯一信息都保留在 ListStudents 中。这些都在同一个命名空间中。
请原谅我是新手,但我对此非常感兴趣。我知道 Classes 是引用类型,因此 "student" class 指向包含相关信息的内存块。 ListStudents 的每个索引是否都指向这块内存,但我的 class 名为 "student" 只指向一个位置,即最近创建的 Student 的位置?
我的实施是否符合良好做法?
非常感谢。
我相信你在谈论 List<> 和 class 之间的关系。
列表只是指向 class 的指针。
上面例子中的名字学生是一个局部变量,它只存在于创建它的方法中。它永远不会被再次引用,名字也不会保存在列表<>中。
基本上发生的事情是在内存中创建一个对象。然后学生引用/指向该对象。然后列表指向那个对象。最后,当方法结束时,学生超出范围并永远丢失。
我是 C# 的初学者,目前正在学习有关列表集合等的所有知识。我想知道 how/why 下面的代码是否有效:
我创建了一个学生列表:
// 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" 的 Student Class。可能有 20 个 class 都命名为 "student,",但它们所有的唯一信息都保留在 ListStudents 中。这些都在同一个命名空间中。
请原谅我是新手,但我对此非常感兴趣。我知道 Classes 是引用类型,因此 "student" class 指向包含相关信息的内存块。 ListStudents 的每个索引是否都指向这块内存,但我的 class 名为 "student" 只指向一个位置,即最近创建的 Student 的位置?
我的实施是否符合良好做法?
非常感谢。
我相信你在谈论 List<> 和 class 之间的关系。 列表只是指向 class 的指针。
上面例子中的名字学生是一个局部变量,它只存在于创建它的方法中。它永远不会被再次引用,名字也不会保存在列表<>中。
基本上发生的事情是在内存中创建一个对象。然后学生引用/指向该对象。然后列表指向那个对象。最后,当方法结束时,学生超出范围并永远丢失。