我在内存中有一个庞大的节点网络,它们都引用了同一个对象。
举个例子。假设网络中的每个节点都是此类。
public class Node
{
/** This is the shared object **/
public Context context { get; private set; }
public Node Parent { get; private set; }
public List<Node> Children { get; private set; }
public Node(Context pContext, Node pParent, List<Node> pChildren)
{
this.context = pContext;
this.Parent = pParent;
this.Children = pChildren;
}
}
该属性context
是传递给网络中所有节点的构造函数的对象。
假设网络非常大(有数千个节点),并且它们形成树结构。它们之间的这种公共共享引用会导致内存泄漏吗?
Parent
如果我通过设置为分离树中的一个分支Null
。C#
即使context
仍然是对该共享对象的引用,该分支是否会被正确地进行垃圾收集?
我应该采用什么编码实践来确保它正常工作。