组件导向架构学习与实践
1. 链表枚举流程
在处理链表元素时,会经历以下流程:
1. 调用LinkedListEnumerable.GetEnumerator()方法,返回一个IEnumerator实例。
2. 代码调用LinkedListEnumerable.MoveNext()方法。
3.MoveNext()方法的实现返回True表示可以移动到下一个元素;若返回False,则表示已到达集合(这里是链表)的末尾。
4. 如果MoveNext()返回True,则调用LinkedListEnumerable.Current()属性来获取当前链表元素。
5. 将获取的链表元素赋值给For Each循环的变量(在本例中为rg)。
6. 控制权返回给For Each循环,用户代码对链表元素进行操作。
7. 当For Each循环尝试下一次迭代时,重复步骤 2 至 6,直到MoveNext()返回False。
8. 当MoveNext()返回False时,迭代器退出,导致