Назад к вопросам
Junior — Middle
63
В чем заключается предназначение интерфейса IDisposable в .NET и как его использовать?
Ответ от нейросети
sobes.tech AI
Интерфейс IDisposable в .NET предназначен для освобождения неуправляемых ресурсов (например, файловых дескрипторов, соединений с базой данных) вручную, когда объект больше не нужен.
Использование:
- Класс реализует IDisposable и переопределяет метод Dispose(), в котором освобождает ресурсы.
- В коде, где используется объект, вызывается Dispose() явно или применяется конструкция
using, которая гарантирует вызов Dispose() даже при исключениях.
Пример:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Освобождение ресурсов
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Использование
using (var resource = new ResourceHolder())
{
// работа с ресурсом
}
// Здесь автоматически вызовется Dispose()