这些资料是我学习的时候在网络上寻找到的,发布出来希望对大家有帮助,一起努力前进,嘿嘿......Microsoft C#规范 2.0 版 GFC用户提交

feedsky 抓虾 pageflakes google reader my yahoo bloglines 鲜果 有道 http://wap.feedsky.com/bliplink

终结器Finalize

using System;
//终结器Finalize方法用来确保当对象被垃圾收集器收集时,对象所包装的本地资源得到释放(或关闭),
//因为它可以确保托管对象在释放内存的同时不会泄漏本地资源,或者强制执行一些操作。
//但终结器是非确定性的,不能确定它何时会被调用。

//终结器被垃圾回收器非确定性地调用,是一个保护的虚方法,不能显示调用它。
//这意味着被托管类型包装的非托管资源,例如文件、数据库连接、位图和设备,可能不会以一种及时的方式释放。
//非托管资源的延迟释放可能会对该应用程序或可能的其它应用程序产生副作用。

//C#编译器所提供的Finalize方法包含一个try.....finally...
//try模块包含该析构函数/终结器的代码,finally模块包含指定基类的Finalize方法。
//这意味着开发人员不应该试图直接调用基类的析构函数,出现的Finalize方法会自动承担这一责任。

//在一个终结器中访问托管对象是不合理的,因为垃圾回收是不可确定,而且该对象可能已经不复存在了。


namespace Donis.CSharpBook
{
 public class Starter
 { 
  public static void Main()
  {
   XClass obj=new XClass();
  }
 }

 public class ZClass
 {

  ~ZClass()
  {
   Console.WriteLine("ZClass d'tor");
  }

 }

 public class YClass: ZClass
 {

  ~YClass()
  {
   Console.WriteLine("YClass d'tor");
  }

 }

 public class XClass: YClass
 {

  ~XClass()
  {
   Console.WriteLine("XClass d'tor");
   throw new Exception("D'tor exception");
  }

 }

}


友情链接

郑州大学软件学院 SpringWidgets-Blogger 徵信社 翻译公司 链接帮手网 行驶证字体 酷站目录 Friend Connectified