2016-09-07 3 views
0

私はゲームでウィンドウを開くために、これらの2つのクラスを別々のファイルで使用しています。それは動作しますが、他のクラスにインスタンスを割り当てないでGUI.Check = thisを行う簡単な方法があります。 Ex。ここでMyClass = thisこのキーワードにクラスを割り当てる

(物事の不正確な命名のため申し訳ありませんが)

public class MyClass 
{ 
    public WindowClass GUI; 

    public void OpenGUI() 
    { 
     if (!GUI.open) 
     { 
      GUI.Check = this; 
      GUI.open = true; 
     } 
    } 
} 

public class WindowClass 
{ 
    public bool open = false; 
    public MyClass Check; 

    public void Display() 
    { 
     if (open) 
     { 
      // GUI stuff here 
     } 
    } 
} 
+0

変数を宣言することによって、変数に代入しようとするときに 'this'が参照するものによって異なります。 – krillgar

+1

'MyClass'パラメータを受け取り、それを' check'メンバに割り当てたコンストラクタを 'WindowClass'クラスに作成します。次に、 'MyClass'メソッドからそのクラスを作成し、' this'を渡すと、明示的な割り当ては不要です。 –

+1

あなたが求めているものはあまり明確ではありません。あなたは 'GUI.MyClass = this'の別の構文を求めていますか? (サイドノート:あなたは決してC#でクラスを割り当てることはできません - おそらく "クラスのインスタンスを割り当てます" ...投稿のタイトルは絶対に意味がありませんので、 'this'に何も割り当てることはできません) –

答えて

0

はクラスの両方が、他のクラスの参照を必要とするようです。 winformsとWPFで子供と親の参照を保持するのと同様の何か。

これは、より正確にはそのオブジェクトを意味します。これは、参照をお互いに保持する一般的な習慣のようです。

割り当ての代わりに、もう1つのメカニズムは、コンストラクタ経由で注入することです。

+0

これは低品質の投稿キュー –

関連する問題