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
      } 
  • 相关阅读:
    数论数论函数基础知识
    KMP入门和简单运用
    高斯消元入门
    FFT和NTT
    AC自动机入门和简单应用
    后缀自动机入门
    线段树优化建图的速成
    爱情九十七课,降低期待
    爱情九十二课,说出你的弱
    爱情八十六课,等得不是爱情
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4640840.html
Copyright © 2011-2022 走看看