关于c#:标记包含列表的Class对象

Tag a Class object containing a list

我有个班上的学生

字符串全名;listscoreslist;

我将一个对象学生从文本框编译成:

1
2
3
4
5
6
7
8
9
10
    private void button2_Click(object sender, EventArgs e)
    {
        this.DialogResult = DialogResult.OK;
        if (IsValidData())
        {
            List<string> result = txtScores.Text.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList();
            Student student = new Student(txtName.Text,  result.Select(int.Parse).ToList());
            this.Tag = student;
            this.Close();
        }

在Form1方面,我有:

1
2
3
4
5
6
7
8
9
10
    private void btnAddNew_Click(object sender, EventArgs e)
    {
        AddNewStudent addStudentForm = new AddNewStudent();
        DialogResult selectedButton = addStudentForm.ShowDialog();
        addStudentForm.Tag = new Student();
        if (selectedButton == DialogResult.OK)
           student = addStudentForm.Tag as Student;
        students.Add(student);

    }

我应该从另一个表单中的用户信息中获取标签来构造一个学生,并将其传递回表单1,然后将其添加到我的学生集合中。一旦它被添加,它应该像我在加载表单时手动创建的学生那样工作。相反,列表在运行时为空。我甚至可以通过标签移动包含列表的整个对象吗?如果可以,我哪里出错了?


您在addstudentForm.tag=new student();行中过度引用标记值