Реализация шаблона для базового класса. Garbage collector.
Общий шаблон реализации шаблона удаления для базового класса, который использует безопасный дескриптор
using Microsoft.Win32.SafeHandles; using System; using System.Runtime.InteropServices; class BaseClass : IDisposable { // Flag: Has Dispose already been called? bool disposed = false; // Instantiate a SafeHandle instance. SafeHandle handle = new SafeFileHandle(IntPtr.Zero, true); // Public implementation of Dispose pattern callable by consumers. public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } // Protected implementation of Dispose pattern. protected virtual void Dispose(bool disposing) { if (disposed) return; if (disposing) { handle.Dispose(); // Free any other managed objects here. // } disposed = true; } }
H