Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csOpRsId 158 of 163 menu
◀ ▶

Контракт освобождения ресурсов в C#

Явное освобождение удобно оформлять общим контрактом, чтобы вызывающий код знал, какой метод вызвать.

IDisposable - интерфейс с одним методом Dispose. Класс, который держит файл или другое внешнее состояние, реализует этот интерфейс и в Dispose закрывает ресурс.

Класс сессии реализует интерфейс:

LogSession session = new LogSession(); Console.WriteLine(session.open); session.Dispose(); class LogSession : IDisposable { public bool open = true; public void Dispose() { open = false; Console.WriteLine("closed"); } }

Сделайте класс Gate с полем locked. Оформите явное освобождение общим контрактом языка, как в примере урока, и при завершении работы снимите блокировку с сообщением на экран.

Создайте объект Gate, завершите работу с ресурсом вручную и проверьте поле после этого.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить