C#树节点删除和内存管理

时间:2015-07-06 16:04:14

标签: c# tree garbage-collection

我正在开发一个具有树结构的C#应用​​程序。该结构由Component个对象列表组成,每个Component可以包含一个子组件列表。我的问题是,如果我删除树(或子树)的根,垃圾收集器是否知道删除所有子组件和子子组件?

1 个答案:

答案 0 :(得分:1)

如果没有引用通过任何有根对象注意到的任何内容,那么它们就有资格收集。

换句话说,如果任何代码可能会尝试引用该对象,那么就无法收集它;如果程序可以确定将来执行的任何代码无法尝试访问该对象,那么它们就有资格进行收集。

对象被其他无法访问的对象引用并不相关。