Sobes.tech
Junior — Middle

Explica scopul și utilizarea interfeței IDisposable în .NET

sobes.tech AI

Răspuns de la AI

Interfața IDisposable din .NET este destinată să elibereze resursele necontrolate, cum ar fi fișierele, conexiunile de rețea, descriptorii etc. Conține o metodă — Dispose(), care este apelată pentru eliberarea explicită a resurselor.

Utilizarea IDisposable permite controlul momentului în care resursele sunt eliberate, ceea ce este important pentru prevenirea scurgerilor de memorie și blocărilor.

Exemplu de utilizare:

class ResourceHolder : IDisposable
{
    private FileStream fileStream;

    public ResourceHolder(string filePath)
    {
        fileStream = new FileStream(filePath, FileMode.Open);
    }

    public void Dispose()
    {
        fileStream?.Dispose();
    }
}

// Utilizare cu instrucțiunea using
using (var resource = new ResourceHolder("file.txt"))
{
    // Lucru cu resursa
}
// După ieșirea din using, Dispose() este apelat automat

Astfel, IDisposable ajută la gestionarea ciclului de viață al resurselor și asigură eliberarea lor corectă.