РЕДАКТИРОВАТЬ 1
Кент развеял мои страхи. Однако я нашел одно исключение из правила. Я написал метод для класса Node, который будет проходить вверх по иерархии, пока не доберется до корневого Node и не вернет свой хэш-код. Хеш-код одинаков для всех строк, кроме одного объекта. Одним словом, RAGE.
Я заканчиваю писать свое первое (относительно) большое приложение на C #. Тем не менее, я думаю, что нашел серьезную ошибку, на которую я облажался.
Мое приложение анализирует файл XML и создает иерархию объектов, каждый из которых наследуется от класса Node, со списками дочерних элементов и ссылкой на родительский узел.
Мне нужно было иметь возможность скопировать эту структуру. Концепция заключается в том, что исходная структура содержит данные по умолчанию, и вы можете получить свою собственную копию и изменить ее во время использования. Поэтому я использовал общий метод расширения DeepClone , чтобы сделать это с BinaryFormatter .
Мой вопрос, хотя я чувствую, что уже знаю (и боюсь), каков ответ, состоит в том, оставляет ли этот подоконник проблему переназначения ссылок на все эти родительские и дочерние узлы?
Отказ от ответственности: Когда я закончу это, я осознаю все ошибки в дизайне, которые я сделал, и как их можно было избежать, включая эту. В мою защиту, этот семестр в университете будет в первый раз, когда я беру класс структур данных. ;) Я полностью ожидаю, что будет какая-то жизненно важная часть дерева, которую я не смог реализовать и которая поможет решить эту проблему. > _ <</p>