私の中に、同じオブジェクトを持つオブジェクトに問題があり、このオブジェクトはexamepleのために、その上の別のオブジェクトの内側にあり、:同じオブジェクト型の中で宣言されたオブジェクトのn番目の参照を取得するには?
class SomeObject
{
SomeObject obj;
}
var obj= new SomeObject{ };
obj.obj= new SomeObject{ };
obj.obj.obj= new SomeObject{ };
私の質問は、私は、最新のオブジェクトを見つけるのですか、私は使用することができていますこれは
if(obj.obj== null)
{
obj.obj= new SomeObject{ }; //assign it a new object
}
ですが、これを自動的に行う方法はありますか?それぞれのオブジェクトがIEnumerableインターフェイスを実装していない場合、すべてのオブジェクトをループする方法はありますか?どのように私は私が何をしなくても、それを新しいオブジェクトを割り当てることができるように初期化されていない最新のオブジェクトの参照を取得しますし、また:
obj.obj.obj.obj = new SomeObject{ };
私はこれが最も簡単な解決策かもしれ思ったが、私が正しく理解していれば、私は、再帰との友好ないんだけど、それあなたが得るいくつかの調整が付きcurrentObeject.objがnullであるかどうかを調べています。そうでない場合、メソッドは再び呼び出されますが、currentObjectは現在チェックされていた前のobjになります。これは最終的に割り付けられたobjに到達するまで "増分"されます。ありがとうございました ! –
後続の各呼び出しは、パラメータとして 'currentObject.obj'を取得します。これは直前のオブジェクトではなく、チェーン内の子であると直接呼びます。だからあなたの子供が別の子供を抱えているなら( '!= null')、私たちはちょうど下を扱い続けます。現在の子がチェーン内の最後の子であり、子をそれ以上保持しない場合( '== null')、新しい子を安全に追加することができます。 – 0xDECAFBAD