Sobes.tech
Back to questions
Junior — Middle
69

Можете ли привести пример ситуации, когда используется паттерн IDisposable для управления ресурсами?

Answer from AI

sobes.tech AI

Паттерн IDisposable используется для управления неуправляемыми ресурсами, такими как файловые дескрипторы, сетевые соединения, потоки и т.п. Его цель — гарантировать освобождение ресурсов, когда объект больше не нужен.

Пример: работа с файлом. Класс FileStream реализует IDisposable, чтобы закрыть файл и освободить дескриптор после использования.

using (var stream = new FileStream("file.txt", FileMode.Open))
{
    // Работа с файлом
}
// Здесь stream.Dispose() вызывается автоматически, файл закрывается

Использование конструкции using гарантирует вызов Dispose, даже если возникнет исключение.