首先,让我们定义一个节点:
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
,但有更好的方法吗?例如,假设我有一个包含许多类型的程序集,而不仅仅是LinkedList
and LinkedListNode
。通过为节点属性和制作设置器List
,我将这些设置器暴露给整个程序集,这是不希望的。Previous
Next