Im Beispiel wird gezeigt, wie ein Objekt prinzipiell ordnungsgemäß zerstört werden kann. Dispose() wird dabei vom Code aus aufgerufen, der Destruktor zu einem unbestimmten späteren Zeitpunkt vom GarbageCollector.
- weiterführende Informationen zu Destuktoren, Finalize, Dispose: Link
public class MyClass : IDisposable { private bool _bDisposed = false; // Konstruktor public MyClass() { } // Destruktor, Ersatzmakro für // protected override void Finalize() ~MyClass() { this.Dispose(false); } // öffentliche Dispose-Methode zum Aufräumen public void Dispose() { this.Dispose(true); } // interne Dispose-Methode private void Dispose(bool bDisposing) { if (!_bDisposed) { if (bDisposing) { // hier managed Resourcen freigeben } } _bDisposed = true; } }