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