Sobes.tech
Junior — Middle

Jaký je účel rozhraní IDisposable v .NET a jak jej používat?

sobes.tech AI

Odpověď od AI

Rozhraní IDisposable v .NET je určeno k ručnímu uvolnění nemanaged zdrojů (například souborových deskriptorů, připojení k databázi), když objekt již není potřeba.

Použití:

  • Třída implementuje IDisposable a přepisuje metodu Dispose(), ve které uvolňuje zdroje.
  • V kódu, kde je objekt používán, je volána explicitně metoda Dispose() nebo je použita konstrukce using, která zaručuje volání Dispose() i při výjimkách.

Příklad:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Uvolnění zdrojů
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Použití
using (var resource = new ResourceHolder())
{
    // práce s prostředkem
}
// Zde bude automaticky zavolána Dispose()