Junior — Middle
Care este scopul interfeței IDisposable în .NET și cum se utilizează?
sobes.tech AI
Răspuns de la AI
Interfața IDisposable din .NET este destinată pentru eliberarea manuală a resurselor neadministrate (de exemplu, descriptorii de fișiere, conexiunile la bazele de date) atunci când un obiect nu mai este necesar.
Utilizare:
- Clasa implementează IDisposable și suprascrie metoda Dispose(), în care eliberează resursele.
- În codul în care se utilizează obiectul, se apelează explicit Dispose() sau se folosește construcția
using, care garantează apelarea lui Dispose() chiar și în caz de excepții.
Exemplu:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Eliberarea resurselor
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Utilizare
using (var resource = new ResourceHolder())
{
// lucru cu resursa
}
// Dispose() va fi apelat automat aici