//都是引用类型,有必要吗?这里方法内部新建了一个变量,又不是复制了一份新的,就是加了个新的引用。
private List<T> list;
public bool MoveNext()
{
List<T> localList = list; //这个地方为什么要这样写,这是.net source code
if (version == localList._version && ((uint)index < (uint)localList._size))
{
current = localList._items[index];
index++;
return true;
}
return MoveNextRare();
}
有点像代理设计模式了。不会直接操作外部对象、
如果外部list重新赋值的话(就是直等list=XXX),它们就不是一个引用了,就不影响MoveNext里面的localList。