Junior — Middle
Na czym polega cel interfejsu IDisposable w .NET i jak go używać?
sobes.tech AI
Odpowiedź od AI
Interfejs IDisposable w .NET służy do ręcznego zwalniania niezarządzanych zasobów (np. deskryptorów plików, połączeń z bazą danych), gdy obiekt nie jest już potrzebny.
Użycie:
- Klasa implementuje IDisposable i nadpisuje metodę Dispose(), w której zwalnia zasoby.
- W kodzie, w którym używany jest obiekt, wywołuje się Dispose() jawnie lub stosuje konstrukcję
using, która gwarantuje wywołanie Dispose() nawet w przypadku wyjątków.
Przykład:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Zwolnienie zasobów
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Użycie
using (var resource = new ResourceHolder())
{
// praca z zasobem
}
// Tutaj automatycznie wywoła się Dispose()