1.相同点:都是进行垃圾回收的接口。GC只能回收托管内存,非托管内存需要自己实现回收。

2.区别:Finalize为protected方法,外部不可见,且只能回收非托管资源(win32资源等)。clr在进行垃圾回收时,在回收无用对象的托管内存之前,会先调用该对象的Finalize方法(如果有的话),任何对象都不能调用别的对象的Finalize方法,只能调用自己或者基类的Finalize方法;Dispose则用于被外部或用户调用,可以自行选择回收托管或非托管资源(往往用于回收所有资源),很多时候Dispose方法等同于该类的Close方法,即具备Dispose方法的类都有对应的Close方法,自己实现的话最好也同是实现以上两种方法。

3.强调:以上两种方法在回收托管与非托管资源时的不同,不进行手动垃圾回收时,托管资源由clr回收。

示例代码:

1.Dispose接口应用

Code



 

posted on 2008-10-29 13:45  死于青春  阅读(253)  评论(0编辑  收藏  举报