1

所以我一直在研究一门详细介绍大学学生的课程。我有一个按钮将详细信息设置为类的新实例,还有一个按钮通过我的类中的方法检查学生是否通过。问题是我在第一个按钮中创建了一个类的实例来添加用户输入的值,但是我不能使用第二个按钮来访问在第一个按钮中创建的类的实例。

4

3 回答 3

4

尝试在方法上创建一个属性,例如

private Student student1 {get;set;}

然后您可以使用在此属性中设置的实例

student1 = new Student();

如果您希望能够从此类外部访问该属性,则可以将其设为公开,并且即使没有您实际使用的类的实例(大多数可能是一种形式)。

然后,您当然不应该在其他按钮中创建新学生。当您将属性设置为新学生时,您第一次设置的旧学生将消失。

于 2012-10-13T15:32:43.690 回答
0

静态或单例类应该可以解决这个问题。 http://msdn.microsoft.com/en-us/library/ff650316.aspx -Singleton 实现

更简单的方法也是类属性。 http://msdn.microsoft.com/en-us/library/w86s7x04.aspx - 类属性

于 2012-10-13T15:33:41.567 回答
0
Student student1;  //**Simple Declare it here then**
private void button3_Click(object sender, EventArgs e)
    {

        student1 = new Student(); //**Create a new instance here**
        **//BUT You need to handle the exception that can come if the user clicks //button1   before button 3** possibly like this
         if(student1 == null)
                 return;
        label1.Text = student1.text();
        if (student1.hasPassed() == true)
        {
            passfailtextbox.Text = "Pass";
        }
        else
        {
            passfailtextbox.Text = "Fail";
        }
    }

private void button1_Click(object sender, EventArgs e)
    {
        Student student1 = new Student();
        student1.FirstName = firstnamebox.Text;
        student1.SecondName = secondnamebox.Text;
        student1.DateofBirth = DateTime.Parse(dobtextbox.Text).Date;
        student1.Course = coursetextbox.Text;
        student1.MatriculationNumber = int.Parse(matriculationtextbox.Text);
        student1.YearMark = double.Parse(yearmarktextbox.Text);

    }
于 2012-10-13T15:37:05.983 回答