Sobes.tech
Middle

Waarvoor dient de interface IDisposable in C#?

sobes.tech AI

Antwoord van AI

De interface IDisposable wordt gebruikt om het patroon van het vrijgeven van resources te implementeren die buiten de CLR-omgeving worden beheerd (bijvoorbeeld bestandsdescriptors, netwerkverbindingen, WinAPI-handles).

Belangrijkste doelen:

  • Deterministisch vrijgeven van resources: Maakt het mogelijk om niet-beheerde resources onmiddellijk vrij te geven, in plaats van te wachten tot de garbage collector de finalisator aanroept (indien aanwezig).
  • Voorkomen van resource leaks: Zorgt ervoor dat kritieke resources worden vrijgegeven na gebruik, zelfs bij uitzonderingen.
  • Gebruik samen met het sleutelwoord using: De using-constructie roept automatisch de Dispose()-methode van het object dat IDisposable implementeert aan het einde van het codeblok, wat betrouwbare vrijgave garandeert.

De implementatie bevat de parameterloze Dispose()-methode die de resources vrijmaakt. Vaak bevat het patroon een finalizer (destructor) om resources vrij te maken als Dispose() niet expliciet is aangeroepen, maar het wordt aanbevolen om finalizers te vermijden en op using te vertrouwen.

public interface IDisposable
{
    void Dispose();
}