編集1
ケントは私の恐れを和らげました。ただし、このルールには例外が 1 つあります。ルート Node に到達し、そのハッシュ コードを返すまで、階層を上に移動する Node クラスのメソッドを作成しました。ハッシュ コードは、1 つのオブジェクトを除いて、すべて同じです。一言で言えばRAGE。
初めての (比較的) 大規模な C# アプリケーションの作成が終わりました。しかし、私が失敗した重大なバグを発見したと思います。
私のアプリは XML ファイルを解析し、オブジェクトの階層を作成します。各オブジェクトは Node クラスから継承し、子のリストと親ノードの参照を使用します。
この構造をコピーできるようにする必要がありました。概念は、初期構造がデフォルト データを保持し、独自のコピーを取得して、それを使用しながら変更できるというものです。そこで、一般的なDeepClone< T >拡張メソッドを使用して、 BinaryFormatterでそれを行いました。
私の質問は、私はすでに答えを知っている(そして恐れている)と感じていますが、これにより、これらすべての親ノードと子ノードの参照を再割り当てするという問題が残りますか?
免責事項: これを書き終えると、私が犯したすべての設計ミスと、これを含め、どのように回避できたのかに気づきました。私の弁護では、大学での今学期は、データ構造のクラスを受講するのは初めてです。;) これを解決するのに役立つ、実装に失敗したツリーの重要な部分があることを完全に期待しています。>_<