zoukankan      html  css  js  c++  java
  • 自定义类实现IDisposable接口

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace finalize
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                MyResource myone 
    = new MyResource();
                
                
    try 
                {
                                        
    //do something
                }
                
    finally
                {
                    myone.Dispose();
                    myone.Close();     
    //因为已经释放所以不执行动作
                    myone.Close();
                }
                
    using (MyResource mytwo = new MyResource())
                {
                                       
    //do something
                }
                Console.Read();
            }
        }
        
    public class MyResource : IDisposable
        {
            
    private bool IsDisposed;  //判断类是否被释放
            public void Dispose()
            {
                Dispose(
    true);       //调用Dispose(true)释放该类所引用对象的Dispose方法和类本身使用的非托管资源;
            }
            
    public void Close()
            {
                Dispose(
    true);
            }
            
    public void Dispose(bool disposing)
            {
                
    if (!this.IsDisposed)
                {
                    
    if (disposing)
                        Console.WriteLine(
    "此处释放该类所引用对象的Dispose方法");
                    Console.WriteLine(
    "此处释放类本身使用的非托管资源");
                    
    this.IsDisposed = true;
                    
    if (disposing)  
                        GC.SuppressFinalize(
    this);  //阻止终结器的调用
                }
            }
            
    ~MyResource()
            {
                Dispose(
    false);                    //析构函数释放非托管资源调用Dispose(false);
            }
        }
    }
  • 相关阅读:
    HDU-1225 Football Score
    HDU-3854 LOOPS
    HDU-3863 No Gambling
    poj-2096 Collecting Bugs
    HDU-4336 Card Collector
    HDU-4405 Aeroplane chess
    2010上交:最小面积子矩阵
    VijosP1443:银河英雄传说
    VijosP1250:分组背包
    Vijos1221:神秘的配方
  • 原文地址:https://www.cnblogs.com/kakaliush/p/1899738.html
Copyright © 2011-2022 走看看