Sobes.tech
Junior — Middle

Was ist der Zweck der IDisposable-Schnittstelle in .NET und wie wird sie verwendet?

sobes.tech KI

Antwort von AI

Die IDisposable-Schnittstelle in .NET ist dafür vorgesehen, unmanaged Ressourcen (z.B. Dateideskriptoren, Datenbankverbindungen) manuell freizugeben, wenn ein Objekt nicht mehr benötigt wird.

Verwendung:

  • Die Klasse implementiert IDisposable und überschreibt die Methode Dispose(), in der die Ressourcen freigegeben werden.
  • Im Code, der das Objekt verwendet, wird Dispose() explizit aufgerufen oder die Konstruktion using verwendet, die den Aufruf von Dispose() auch bei Ausnahmen garantiert.

Beispiel:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Ressourcen freigeben
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Verwendung
using (var resource = new ResourceHolder())
{
    // Arbeit mit der Ressource
}
// Dispose() wird hier automatisch aufgerufen