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
usingkonstrukcija, 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()