请教关于arraylist的一个问题! 一个arraylist al,一个对象实例A.al.add(A);当A.dispose()之后,al里面的A是不是也不在了?al里面对象数量减少1?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都不会,A只是一个引用变量而已都A.Dispose()一般就是将对象消毁,假如说是:A=null只是A为空引用了,没有指向任何地址,不再指向之前那个对象了,但arrayList里那个仍然没变 那如果要释放arraylist里面的对象,应该怎么写?下面两种方式有什么区别?(1)foreach(classA a in al){ a.dispose();}(2)al.clear();哪种方式比较好点儿? 那如果要释放arraylist里面的对象,应该怎么写?下面两种方式有什么区别? (1) foreach(classA a in al) { a.dispose(); } (2) al.clear(); 哪种方式比较好点儿?---------------------这是两个不同的根念al.clear,是将al清空了al.count=0了循环a.dispose是释放,又是最初的那个概念了释放后al里仍有那么多个,但是数据全部为null了 ArrayList清空以后,原先存储于其中的对象是不是存在,还要取决其他因素:如是否有其他地方引用?是否发生了垃圾回收?没有其他引用但未发生垃圾回收的话,对象仍旧存在,但无法引用到,如果使用了非托管资源的话,可能会有点麻烦。清除ArrayList中的对象,一般需要逐一Dispose,再将ArrayList.Clear()。 如果楼主对这个问题有兴趣可以去看一些关于.net GC原理的一些文章,什么回收线程、什么时候调用析构函数、Dispose到底是做什么的,对象引用是什么、对象的生命期控制、垃圾回收的代....很有趣,有空研究下 关于 vs2005 打包问题 覆盖安装 微软企业库能否调用mysql数据库 c++与c#共享内存问题 【50分】ILIDE# 为什么编译后没法执行啊? |zyciis| 200分求 第二贴 如何用C# 发送按下小键盘中的1 呢我用 SendKeys.Send(); 急 以下代码为何编译不过,帮看看 如何可以让图片360度旋转? GDI+对我来说超难的问题 FTP服务怎么返回文件夹和文件列表给客户端?急!!!!! C#学的Windows服务不可以涉及数据库操作吗? .Net发布的问题 .net 在x64系统下反射出现错误
都A.Dispose()一般就是将对象消毁,假如说是:A=null
只是A为空引用了,没有指向任何地址,不再指向之前那个对象了,
但arrayList里那个仍然没变
(1)
foreach(classA a in al)
{
a.dispose();
}(2)
al.clear();
哪种方式比较好点儿?
(1)
foreach(classA a in al)
{
a.dispose();
} (2)
al.clear();
哪种方式比较好点儿?
---------------------这是两个不同的根念
al.clear,是将al清空了al.count=0了
循环a.dispose是释放,又是最初的那个概念了
释放后al里仍有那么多个,但是数据全部为null了
很有趣,有空研究下