编辑 1
肯特减轻了我的恐惧。但是,我发现该规则有一个例外。我为 Node 类编写了一个方法,该方法将向上遍历层次结构,直到到达根节点并返回其哈希码。除了一个对象之外,哈希码一直是相同的。总之,愤怒。
我正在编写我的第一个(相对)大型 C# 应用程序。但是,我想我发现了一个我搞砸的主要错误。
我的应用程序解析 XML 文件并创建对象层次结构,每个对象都继承自 Node 类,具有子列表和节点父引用。
我需要能够复制这个结构。概念是初始结构保存默认数据,您可以获取自己的副本并在使用时对其进行修改。所以我使用了一个通用的DeepClone< T >扩展方法来使用BinaryFormatter。
我的问题,虽然我觉得我已经知道(并且害怕)答案是什么,但这是否会给我留下重新分配所有父节点和子节点的引用的问题?
免责声明:当我完成这篇文章时,我意识到我犯的所有设计错误以及如何避免它们,包括这个。在我的辩护中,这个学期的大学将是我第一次参加数据结构课程。;) 我完全希望树的某些重要部分我未能实现,这将有助于解决这个问题。>_<