1、使用场景:
Finalize:Finalize 是 Object的方法,C# 类中使用了非托管资源,重写Finalize ,在方法内部释放非托管资源。从而保证了当前类被释放的同时,也释放了内部使用的非托管资源。这里的重写不能使用override,而是使用析构函数来达到同样效果。
Dispose:Dispose是 接口IDisposable的方法,实现Dispose方法,对象自身释放非托管资源。
2、调用Finalize告诉GC回收当前对象,即使不调用Finalize,GC也会在恰当的时机回收该对象;对象必须手动调用Dispose,释放自身。为了更好地理解,有些类对Dispose 方法进行包装,提供一个更合适的方法名,比如IO中的Close方法。