2017-08-28 3 views
0

質問のタイトルを記載するのに問題がありますが、それを要約すると思います。C#メソッドを呼び出すオブジェクトを参照ノードとして別のオブジェクトに保存することはできますか?

私は何をしたい、このです:

オブジェクト1は、アレイにサブオブジェクトを追加する方法があります。オブジェクト2はメソッドのパラメータに渡されます。次に、Object 2にObject 1を追加する際にParent参照ノードに自動的に割り当てるようにします。ここでは例

Room1 = new Area(10, 10, "Anthony's House"); 
    R1_LivingRoom = new SubArea(5, 5, "Living ROom"); 
    int[] loc = new int[2] {10,10 }; 
    Room1.setSubArea(loc, R1_LivingRoom); 
    R1_LivingRoom.Parent = Room1; 

私は、この例のように自分自身をそれを割り当てるために必要とせずに階層を追跡する方法をしたいと思います。自動的に予備成形し

Room1.setSubArea(loc, R1_LivingRoom); 

:ROOM1に追加された上で

 R1_LivingRoom.Parent = Room1; 

場合、それはいいだろう。

私はそれを唯一の方法ですか?それを直接指定するか、Room1をソートのパラメータで渡しますか?または、setSubAreaを使って追加したときに、Room1である呼び出しオブジェクトを参照して自動的に親に割り当てることができます。これは動作するはず

答えて

2

おかげで、私が最初に行なったし、それは私のために動作しません何

public class Room 
{ 
    public void setSubArea(int[] loc, SubArea room) 
    { 
     //some code 
     room.Parent = this; 
    } 
} 
+0

。私は部屋に電話をするときに。親はそれを返さない。しかし、私はそれを直接外側に割り当てます(room.Parent = Room1)。 "this"は実際に呼び出し元オブジェクトへの参照を返しませんか? – user455046

+1

これはうまくいかなければなりません。オブジェクトをどこかに配置したり、何か他のことをしたりしている可能性があります。ちょうどこれを行う非常に簡単なテストケースを試してみると、それは動作することがわかります。 –

+1

さて、それは働いた。私はいくつかの境界をチェックしていて境界内にそれを変更するのを忘れていました。ありがとう、私はより多くを確認することを学ぶ必要があります。 – user455046

関連する問題