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