我正在开发一个具有树结构的C#应用程序。该结构由Component
个对象列表组成,每个Component
可以包含一个子组件列表。我的问题是,如果我删除树(或子树)的根,垃圾收集器是否知道删除所有子组件和子子组件?
答案 0 :(得分:1)
如果没有引用通过任何有根对象注意到的任何内容,那么它们就有资格收集。
换句话说,如果任何代码可能会尝试引用该对象,那么就无法收集它;如果程序可以确定将来执行的任何代码无法尝试访问该对象,那么它们就有资格进行收集。
对象被其他无法访问的对象引用并不相关。