2011-11-18

Disposable パターン

このマヌケな脳みそはよく忘れるので。
class Disposable : IDisposable
{
    ManagedResource managedResource;
    IntPtr unmanagedResource;

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    
    ~Disposable()
    {
        Dispose(false);
    }
    
    protected virtual Dispose(bool disposing)
    {
        if (disposing) 
        {
            managedResource.Dispose();
            managedResource = null;
        }
        
        Free(unmanagedResource);
        unmanagedResource = IntPtr.Zero;
    }
}
そして書いたらきっと覚える。

0 件のコメント:

コメントを投稿