Sobes.tech
Junior — Middle

Kokia yra IDisposable sąsajos paskirtis .NET ir kaip ją naudoti?

sobes.tech AI

Atsakymas iš AI

.NET'e IDisposable sąsaja skirta rankiniu būdu atlaisvinti nevaldomus išteklius (pvz., failų aprašus, duomenų bazės ryšius), kai objektas nebėra reikalingas.

Naudojimas:

  • Klasė įgyvendina IDisposable ir perrašo Dispose() metodą, kuriame atlaisvinami ištekliai.
  • Kode, kur naudojamas objektas, iškviečiama aiškiai Dispose() arba taikoma using konstrukcija, kuri garantuoja Dispose() iškvietimą net ir išimčių atveju.

Pavyzdys:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Naudojimas
using (var resource = new ResourceHolder())
{
    // dirbama su ištekliu
}
// Čia automatiškai iškviečiama Dispose()