Sobes.tech
Junior — Middle

Kāda ir IDisposable saskarnes nozīme .NET un kā to izmantot?

sobes.tech AI

Atbilde no AI

.NET platformā interfeiss IDisposable paredzēts manuāli atbrīvot nevadāmus resursus (piemēram, failu deskriptorus, datu bāzes savienojumus), kad objekts vairs nav nepieciešams.

Lietošanas veids:

  • Klase realizē IDisposable un pārraksta metodi Dispose(), kurā tiek atbrīvoti resursi.
  • Kodā, kur tiek izmantots objekts, tas tieši izsauc Dispose() vai tiek izmantota konstrukcija using, kas garantē Dispose() izsaukšanu pat izņēmuma gadījumā.

Piemērs:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Resursu atbrīvošana
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Lietošana
using (var resource = new ResourceHolder())
{
    // Darbs ar resursu
}
// Šeit automātiski tiks izsaukts Dispose()