首页 新闻 会员 周边

为什么要在方法中定义一个局部变量指向外部字段?

0
[已关闭问题] 关闭于 2017-07-06 04:35

//都是引用类型,有必要吗?这里方法内部新建了一个变量,又不是复制了一份新的,就是加了个新的引用。

       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();
        }
给我一个理由的主页 给我一个理由 | 初学一级 | 园豆:17
提问于:2017-07-05 07:45
< >
分享
所有回答(2)
0

有点像代理设计模式了。不会直接操作外部对象、

fcyh | 园豆:568 (小虾三级) | 2017-07-05 08:28
0

如果外部list重新赋值的话(就是直等list=XXX),它们就不是一个引用了,就不影响MoveNext里面的localList。

慧☆星 | 园豆:5640 (大侠五级) | 2017-07-05 09:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册