我知道在现实生活中可能永远不会使用它,但是说我有一堆从Student类实例化的名称对象。即我知道我的Student对象的名称是“ s1,s2,s3”,我想将它们添加到“学生列表”中(使用循环),而不是对象的字段,而是对象本身。同样,我想强调一点,通常这样做永远没有意义,当然,容器会更好。我知道这是完全不正确的语法,但是我要捕获的想法是:
Student s1 = new Student(3434,"John Smith");
Student s2 = new Student(5454, "Sam Wilkies");
Student s3 = new Student(7878, "Jim Jam");
List<Student> students= new List<Student>();
for(int i; i<=3; i++){
string j= "s" + i.ToString();
students.add(Student[j]);
就像我说的那样,我知道这是完全不正确的语法。我以为也许可以使用Activator.CreateInstance(每个人都说要避免使用),但是我不知道。
答案 0 :(得分:1)
简短的答案是你不能。不适用于局部变量。但这并不意味着您无法改进代码以完成所需的工作。
每次 number 个变量时,都犯了一个不使用容器(数组或列表)的错误。这就是您应该关注的重点,而不是稍后如何解决胶带错误。
Student[] s = new[] {
new Student(3434,"John Smith"),
new Student(5454, "Sam Wilkies"),
new Student(7878, "Jim Jam")
}
// matter of fact this is not needed now, just to show you the loop:
List<Student> students = new List<Student>();
for(int i = 0; i < 3; i++)
{
students.Add(s[j]);
}