在Dispose函数中如何写释放托管资源的代码?是否将引用赋值为null,并调用基类的Dispose函数即可?

解决方案 »

  1.   

    Dispose中不用释放托管资源,也无法释放。
      

  2.   

    Dispose中一般写结束功能的操作,比如关闭已经打开的文件等内容。对象内的资源由系统自己回收。不用参与,但也可以用GC强行销毁已不用的资源。
      

  3.   

    一般在Finalize方法中释放非托管资源,在Dispose方法中释放托管和非托管资源。GC回收托管资源的前提是该资源是不可达的,那为了使GC及时释放资源,是不是应该手动将指向该资源的引用置为null?
      

  4.   

    如果你没有非托管资源,是不用写Dispose方法的。
    如果你继承的基类有Dispose,你也可以忽略不写Dispose,但是如果你要重写Dispose就要确保调用了基类的Dispose。