zoukankan      html  css  js  c++  java
  • Class 实现IDisposing方法

    public class MyResourceHog : IDisposable 
      // 已经被处理过的标记 
      private bool _alreadyDisposed = false
      // 终结器。调用虚拟的Dispose方法 
      ~MyResourceHog() 
      { 
       Dispose( false ); 
      } 
     
      // IDisposable的实现 
      // 调用虚拟的Dispose方法。禁止Finalization(终结操作) 
      public void Dispose() 
      { 
       Dispose( true ); 
       GC.SuppressFinalize( true ); 
      } 
     
      // 虚拟的Dispose方法 
      protected virtual void Dispose( bool isDisposing ) 
      { 
       // 不要多次处理 
       if ( _alreadyDisposed ) 
        return
       if ( isDisposing ) 
       { 
        // TODO: 此处释放受控资源 
       } 
       // TODO: 此处释放非受控资源。设置被处理过标记 
       _alreadyDisposed = true
      } 
     
       如果衍生类需要执行另外的清除操作,它应该实现受保护的Dispose方法: 
     
    public class DerivedResourceHog : MyResourceHog 
      // 它有自己的被处理过标记 
      private bool _disposed = false
     
      protected override void Dispose( bool isDisposing ) 
      { 
       // 不要多次处理 
       if ( _disposed ) 
        return
       if ( isDisposing ) 
       { 
        // TODO: 此处释放受控资源 
       } 
       // TODO: 此处释放所有受控资源 
     
       // 让基类释放自己的资源。基类负责调用GC.SuppressFinalize( ) 
       base.Dispose( isDisposing ); 
     
       // 设置衍生类的被处理过标记 
      _disposed = true
      } 
  • 相关阅读:
    LaTex 章节层次
    计算机组成原理——第二章 运算方法和运算器(笔记)
    计算机组成原理——第一章 计算机组成原理概论(笔记)
    LaTex图片的插入与引用
    adobe 下载与安装
    Jupyter upload无效(无法上传文件)的解决办法
    小星星的js 找不到了 ,直接上源码
    excle网页上预览
    svn is already locked. 文件被锁定
    搭建SSM项目,从数据库到前台数据显示 2019
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4640840.html
Copyright © 2011-2022 走看看