日期:2014-05-19  浏览次数:20755 次

关于Object.Finalize()方法使用的疑惑
比如我有一个类
public   class   aaa
{
      public   aaa(){}
}
那么这个类我使用完璧了是怎么销毁的?通过Object.Finalize()吗?
如果我这么写
public   class   aaa
{
      public   aaa(){GC.SuppressFinalize(this);}
}
这个方法意识是不调用对象的终结器
那么这个类我使用完璧了又是怎么销毁的?


------解决方案--------------------
不用Finalize(), 因为class是引用类型
看看 < <CLR via c#> >

------解决方案--------------------
1、Finalize不由你调用,这个方法由GC自动调用,任何代码都不应调用Finalize方法。
2、Finalize方法仅为释放非托管资源提供最后一道屏障,任何托管资源不应在Finalize方法中出现。
3、C#中的对象销毁由GC自动完成,不需干预。