首页 新闻 会员 周边

c#ArrayList 赋值问题

0
[已解决问题] 解决于 2015-08-12 10:38

定义两个ArrayList,

ArrayList list1=new ArrayList();

ArrayList list2=new ArrayList();

为list1赋值,list1={1,2,3};

把list1给list2,list2=list1;

清除list1的元素,list1.clear();

此时list2中的元素也没有了,为什么?

Howard0621的主页 Howard0621 | 初学一级 | 园豆:36
提问于:2015-08-11 17:18
< >
分享
最佳答案
0

首先list2引用了list1里面的值,但是清空了list1里面的值后,list2引用到了list1里面的空值及没有值;只是给list2赋值为null,则并没有引用到list1里面的值,此时list1与list2没有任何关联

奖励园豆:5
如此低调的男人 | 小虾三级 |园豆:842 | 2015-08-12 09:25
其他回答(5)
0

list1 和 list2 指向的是同一个东西,引用类型嘛。

Firen | 园豆:5385 (大侠五级) | 2015-08-11 17:22

但是如果将list2.clear()换成list2=null;list1不会变成null,为什么

支持(0) 反对(0) Howard0621 | 园豆:36 (初学一级) | 2015-08-11 17:25

@jianrenmo: 因为你没有掌握基本的 C# 语法。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-08-11 17:36

@jianrenmo: 因为list1指向的东西没有变…

支持(0) 反对(0) Firen | 园豆:5385 (大侠五级) | 2015-08-11 19:59
0

list是引用类型的,你list2指向了list1,当然就没有了,和C的指针一样

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-08-11 17:23
0

引用类型

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-08-11 17:58
0

就是他们说的那样~。~

伤心懒睡猪 | 园豆:346 (菜鸟二级) | 2015-08-12 08:43
0

这就是乌龟的屁股:龟腚,你不理解的话就硬记也得记住是这样的。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-08-12 09:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册