把一个对象Dispose()跟 把一个对象赋为空 这两个有什么区别?

解决方案 »

  1.   

    Dispose应该是马上释放对象的资源,
    而设为null,只是说明声明的变量现在指向空,但是对象的的资源还在内存中,不过没有句柄指向他,需要等垃圾回收自动回收
      

  2.   

    1 2楼的意思一样,那么释放资源就表示不占用内存了是吗?那给它NULL是不是表示不占用内存了??
      

  3.   

    =null不等于释放资源,只是置了空引用
      

  4.   

    1、Dispose无法显式释放托管堆内存﹐它们永远是微软的"私人财产 ",只有垃圾回收器能做到;
    Dispose方法能让你手动释放其非托管资源的内存,是必要的。
     1个变量在定义的时候就已经分配了一个空间,只不过你赋值 Null,严格说是占内存的。
    2、Dispose()与Null 性质完全不同。
     出于安全考虑啊,都要使用Dispose(),还有一个就是close().没使用他们的,出了问题的,不要说微软垃圾。
     
      

  5.   


    Dispose是你手动释放了资源,而null只不过是在内存中开辟了此空间,但是没有存放值
      

  6.   

    Dispose();调用完成了是手动释放资源,而=null;是置了空引用,通过内存回收机制来进行处理
      

  7.   

    Dispose()是指你被开除了,公司不要你了
    Null是指公司不景气,你先暂时别干活了,等公司好了再找你Dispose()和Close()的区别基本上都是没有区别的,只是使用有点不同解释一下:Dispose()就是lay off
    Close()就是开除为什么要出来Close呢?因为不明白英语的人不知道lay off什么意思