将一个list清空和赋值null到底有什么区别 List<string> list=....list.Clear();list=null;对于内存释放等有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 list=null;list.Clear();只是清空了内容 在内存上它还是占有空间 而=null 就是不占用内存空间 =null 是把占用的内存直接清掉了吗?那种方式能更快的把内存清空掉 =null还没有立刻把内存清掉,要调用GC.Collect();才会清掉内存,Clear方法和=null差不多,也不会马上把内存清掉,直到GC.Collect()调用为止(如果你不调用的话系统会在适当的时机调用) 不用了,就设置为null,如果还要new一个使用,那不如Clear了继续用得好。因此单独比较内存释放是没有意义的,要看具体场合用具体的功能。另外在局部变量时,离开作用域自动释放,相当于赋值null,因此一般很少有人会特意使用这个null的。 不过调用list.Clear();会减轻GC.Collect方法的负担,使其能更快完成清除内存的工作,所以如果元素很多,我会三句都写:list.Clear();list=null;GC.Collect();但GC.Collect();通常会消耗很多时间,所以如果数组元素不多的情况没必要直接调用GC.Collect,让系统在它感到不适的时候自动调用GC.Collect为好, 搞混了求理清 &的问题 请教C#.net页面切换回父页时父页数据的更新?请高手指教一二 如何实例阻塞试循环检测节省资源 简体转化为繁体的函数 NHibernate应用调查(到底多少人用过,较大项目应用的案例) 怎么样让Label的背景颜色变成透明的! C# word 多行之间的编号样式,项目符号怎么得到 100分求教如何用GDI+在Windows CE.Net的 Form上实现简单的持续流动的动画效果。 小问题 图片为什么不显示? vs2008中文版下载
list.Clear();只是清空了内容 在内存上它还是占有空间 而=null 就是不占用内存空间
另外在局部变量时,离开作用域自动释放,相当于赋值null,因此一般很少有人会特意使用这个null的。
list=null;
GC.Collect();但GC.Collect();通常会消耗很多时间,所以如果数组元素不多的情况没必要直接调用GC.Collect,让系统在它感到不适的时候自动调用GC.Collect为好,