Sobes.tech
Junior — Middle

Care este scopul interfeței IDisposable în .NET și cum se utilizează?

sobes.tech AI

Răspuns de la AI

Interfața IDisposable din .NET este destinată pentru eliberarea manuală a resurselor neadministrate (de exemplu, descriptorii de fișiere, conexiunile la bazele de date) atunci când un obiect nu mai este necesar.

Utilizare:

  • Clasa implementează IDisposable și suprascrie metoda Dispose(), în care eliberează resursele.
  • În codul în care se utilizează obiectul, se apelează explicit Dispose() sau se folosește construcția using, care garantează apelarea lui Dispose() chiar și în caz de excepții.

Exemplu:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Utilizare
using (var resource = new ResourceHolder())
{
    // lucru cu resursa
}
// Dispose() va fi apelat automat aici