初学C#,对于Finalize和析构函数的区别有些糊涂,还请各位指导下。先谢谢了。

解决方案 »

  1.   

    从系统调用的角度来说:
    Finalize方法只有在垃圾收集执行时才会被调用,他不会在一个方法退出,或者对象超出作用范围时被调用。
    析构函数是你所定义的某个托管资源在超出该资源作用域之前自动调用的函数。
      

  2.   

    我来告诉你,从本质上来说Finalize实在GC的一个线程中单独被调用的,是系统来进行调用的,和析构函数有本质上的区别。而且在实现上Finalize中事实上是一个队列,对非托管的资源进行一个一个的释放