1

それで、私は大学の学生を詳述するクラスに取り組んできました。クラスの新しいインスタンスに詳細を設定するボタンと、クラスのメソッドを介して生徒が合格したかどうかを確認するボタンがあります。問題は、最初のボタンでクラスのインスタンスを作成してユーザーが入力したものから値を追加することですが、2番目のボタンを使用して最初のボタンで作成されたクラスのインスタンスにアクセスすることはできません。

4

3 に答える 3

4

次のようなメソッドでプロパティを作成してみてください

private Student student1 {get;set;}

次に、このプロパティで設定したインスタンスを次のように操作できます。

student1 = new Student();

このクラスの外部からプロパティにアクセスできるようにする場合は、パブリックにすることができます。また、実際に作業しているクラスのインスタンスがなくても、フィールドにアクセスできるようにする必要がある場合は、静的にすることもできます(ほとんどの場合)おそらくフォーム)。

次に、もちろん、他のボタンで新しい生徒を作成しないでください。プロパティを新しい学生に設定すると、最初に設定した古い学生は消えます。

于 2012-10-13T15:32:43.690 に答える
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 に答える
0

静的クラスまたはシングルトンクラスはこれを解決する必要があります。 http://msdn.microsoft.com/en-us/library/ff650316.aspx-シングルトンの実装

より簡単な方法は、クラスプロパティでもあります。 http://msdn.microsoft.com/en-us/library/w86s7x04.aspx-クラスのプロパティ

于 2012-10-13T15:33:41.567 に答える