黑马程序员技术交流社区

标题: 都什么类实现了IDisposable接口?? [打印本页]

作者: 维纳斯之叶    时间: 2012-11-20 22:31
标题: 都什么类实现了IDisposable接口??
都什么类实现了IDisposable接口??
作者: 许庭洲    时间: 2012-11-20 22:47
本帖最后由 许庭洲 于 2012-11-20 22:50 编辑

可以通过自己添加的C#类来实现IDisposable接口,这些方法必须调用基类,否则,基类就不能正确地进行清理操作。
举例子:采用MyResourceHog类通过C#实现IDisposable接口
   publicclassMyResourceHog:IDisposable  
   {  
    //已经被处理过的标记  
    privatebool_alreadyDisposed=false;  
    //终结器。调用虚拟的Dispose方法  
    ~MyResourceHog()  
    {  
         Dispose(false);  
    }  
   
   //IDisposable的实现  
   //调用虚拟的Dispose方法。禁止Finalization(终结操作)  
   publicvoidDispose()  
  {  
         Dispose(true);  
        GC.SuppressFinalize(true);  
  }  
  
//虚拟的Dispose方法  
  protectedvirtualvoidDispose(boolisDisposing)  
  {  
         //不要多次处理  
         if(_alreadyDisposed)  
         return;  
        if(isDisposing)  
       {  
            //TODO:此处释放受控资源  
       }  
       //TODO:此处释放非受控资源。设置被处理过标记  
      _alreadyDisposed=true;  
     }  
}
作者: 陈辉    时间: 2012-11-21 08:47
一些非托管资源,文件资源、网络资源、图片资源、数据库资源等,这些资源都是很费内存的,应该用完就立即释放,具体的可以看看MSDN,上面有详细的说明




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2