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
      } 
  • 相关阅读:
    js 学习的地址;
    HTML onmousedown 事件属性 关于鼠标按键的问题;
    contextmenu="supermenu" 属性的应用 右键菜单打开和保存功能
    gulp自动化ES6转ES5
    angularjs获取元素以及angular.element()用法
    gulp学习总结
    Git 代码管理常用命令
    SpringMVC基于代码的配置方式(零配置,无web.xml)
    [Android Studio 权威教程]AS 中配置强大的版本号管理系统(Git、SVN、等)
    SVM支持向量机
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4640840.html
Copyright © 2011-2022 走看看