【发布时间】:2013-06-12 21:09:00
【问题描述】:
首先,让我们定义一个节点:
LinkedListNode<int> node = new LinkedListNode<int>(43);
您会注意到属性node.List、node.Next 和node.Previous 都只是get。现在让我们将节点添加到LinkedList:
LinkedList<int> linkedlist = new LinkedList<int>();
linkedlist.AddFirst(node);
此时,属性node.List 将更改为包含对linkedlist 的引用。同样,如果将其他节点添加到 LinkedList,Next 和 Previous 属性将更新以反映链表的结构,即使这些属性不公开公共 set 访问器。
这种行为是如何实现的?
我知道如何使用internal,但有更好的方法吗?例如,假设我有一个包含许多类型的程序集,而不仅仅是LinkedList 和LinkedListNode。通过为节点属性 List、Previous 和 Next 创建设置器,我将这些设置器暴露给整个程序集,这是不希望的。
【问题讨论】: