首先,让我们定义一个节点:
LinkedListNode<int> node = new LinkedListNode<int>(43);
您会注意到属性node.List,node.Next和node.Previous都是get唯一的。现在让我们将节点添加到 a LinkedList:
LinkedList<int> linkedlist = new LinkedList<int>();
linkedlist.AddFirst(node);
此时,属性node.List将发生更改以包含对 的引用linkedlist。类似地,如果将其他节点添加到 中LinkedList,则Next和Previous属性将被更新以反映链表的结构,即使这些属性没有公开公共set访问器。
这种行为是如何实现的?
我知道如何使用internal,但有更好的方法吗?例如,假设我有一个包含许多类型的程序集,而不仅仅是LinkedListand LinkedListNode。通过为节点属性和制作设置器List,我将这些设置器暴露给整个程序集,这是不希望的。PreviousNext