Complex IDisposable pattern : IDisposable « Class « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
using System.Security.Cryptography;

class MyClass : IDisposable
{
    private IntPtr myHandle = IntPtr.Zero;
    ~MyClass()
    {
        Dispose(false);
    }
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    protected void Dispose(bool disposing)
    {
        IntPtr h = myHandle;
        if (h != IntPtr.Zero)
        {
            h = IntPtr.Zero;
        }
    }
}

public class MainClass
{
    public static void Main()
    {
        using (MyClass mc = new MyClass())
        {
        }
    }

}








7.54.IDisposable
7.54.1.Simple IDisposable pattern
7.54.2.implementation of IDisposable
7.54.3.Complex IDisposable pattern