Sobes.tech
Junior — Middle

Aký je účel rozhrania IDisposable v .NET a ako ho použiť?

sobes.tech AI

Odpoveď od AI

Rozhranie IDisposable v .NET je určené na manuálne uvoľnenie neovládaných zdrojov (napríklad súborových deskriptorov, pripojení k databáze), keď objekt už nie je potrebný.

Použitie:

  • Trieda implementuje IDisposable a prepíše metódu Dispose(), v ktorej uvoľňuje zdroje.
  • V kóde, kde sa objekt používa, sa volá explicitne Dispose() alebo sa použije konštrukcia using, ktorá zabezpečí volanie Dispose() aj pri výnimkách.

Príklad:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Použitie
using (var resource = new ResourceHolder())
{
    // práca so zdrojom
}
// Tu sa automaticky zavolá Dispose()