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;
}
}