解决方案 »

  1.   


    你的意思是finalize调用的必然是IDisposable.Dispose(false)对吧,因为垃圾回收机制不能保证能安全访问其他的资源,所以只能调用false的这个版本。
      

  2.   


    什么类?如果你说不出什么类,你又怎么界定 components 需要调用 dispose 呢?
      

  3.   

    不知道你所谓的“IDE生成的代码”是指什么代码。只有10年前的某些东西可能会写那种东西。不过就那些容易捣乱的代码而言,也可以看出与你的理解的概念的冲突:你所谓的“资源泄露”是指什么概念呢?托管代码对象如何扯上“资源泄露”这个词儿呢?这是我联想到,有些人动不动就煞有介事地说“dispose是释放资源啊!”。但是你问他:“都释放了哪些类型的资源?”,他说不出。这就是因为说“释放资源”听起来好像很厉害似地,他以为释放资源就是跟内存空间有什么关联似地。那么GC是干什么的?GC就是重新分配托管资源的内存空间的,用不着dispose,而且dispose也从未释放什么托管内存!