0

私は C# にかなり慣れていないので、ここのチュートリアルから始めようと思いました。

私は最初の 3 つを完了し、C# クラスとそれらを使用できるさまざまな方法についてさらに調査していました。その後、私のすべてのコードが 1 つのクラス (私は SharpDevelop を使用しているため、MainForm) にあることに気付きました。しかし、他のクラスのコードを参照しようとすると、StackOverflowException が発生します。クラス (例: CheckAnswers checkanswers = new checkanswers;) をインスタンス化しましたが、何が問題なのですか? 必要に応じてコードを投稿できますが、これはかなり診断が容易な n00b エラーだと思います。

編集:

コード - https://docs.google.com/open?id=0B9vVcIham8NHMGlNaDk3MTZ6ejA

かなりあります。これは私が自分で書いたコードであり、フォーム構成のものではありません。

4

3 に答える 3

0

通信するには、毎回新しいオブジェクトを作成するのではなく、既存のオブジェクトのインスタンスをパラメーターとして渡す必要があります (そうしないと、具象オブジェクト間の通信が行われません)。

したがって、代わりに何をする必要があるかのアイデアを表す例を次に示します。

public class CheckAnswers
{
    MainForm mainform;
    public CheckAnswers (MainForm  form)
    { 
        this.mainform = form;
    }

   ...
}

MainForm クラスでは、次のように CheckAnswers のコンストラクターにパラメーターとして「それ自体」を渡す必要があります。

CheckAnswers checkanswers = new CheckAnswers(this);
于 2012-12-24T09:36:54.393 に答える