我面临这样一种情况,我有依赖对象,我希望能够删除一个对象及其所有引用。
假设我有以下代码中所示的对象结构,其中分支类型引用了两个节点。
如果我从Graph类的Nodes列表中删除一个节点,则仍然可能存在一个或多个Branch对象仍包含对已删除节点的引用,从而使其保留在内存中。实际上,我希望将任何对已删除节点的引用设置为null,并让垃圾回收机制起作用。
除了枚举每个分支并按顺序检查每个节点引用之外,是否有任何聪明的想法可以在每个分支实例中删除对节点的引用,以及任何其他引用已删除节点的类?
public class Node
{
// Has Some Data!
}
public class Branch
{
// Contains references to Nodes
public Node NodeA
public Node NodeB
}
public class Graph
{
public List<Node> Nodes;
public List<Branch> Branches;
}
如果我从Graph类的Nodes列表中删除一个节点,则仍然可能存在一个或多个Branch对象仍包含对已删除节点的引用,从而使其保留在内存中。实际上,我希望将任何对已删除节点的引用设置为null,并让垃圾回收机制起作用。
除了枚举每个分支并按顺序检查每个节点引用之外,是否有任何聪明的想法可以在每个分支实例中删除对节点的引用,以及任何其他引用已删除节点的类?