Sobes.tech
Junior — Middle

Koja je svrha interfejsa IDisposable u .NET i kako ga koristiti?

sobes.tech АИ

Одговор од АИ

Interfejs IDisposable u .NET je namenjen za ručno oslobađanje neuređenih resursa (npr. deskriptora fajlova, veza sa bazom podataka) kada objekat više nije potreban.

Korišćenje:

  • Klasa implementira IDisposable i prepisuje metodu Dispose(), u kojoj oslobađa resurse.
  • U kodu gde se koristi objekat, poziva se eksplicitno Dispose() ili se koristi konstrukcija using, koja garantuje poziv Dispose() čak i pri izuzecima.

Primer:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Korišćenje
using (var resource = new ResourceHolder())
{
    // rad sa resursom
}
// Ovde će automatski biti pozvan Dispose()