Освобождение ресурсов с IDisposable и using в C#
В этом уроке вы с помощью объявления using гарантируете, что ресурсы всегда освобождаются вовремя, даже при ошибке.
Введение
В .NET память автоматически освобождает сборщик мусора (garbage collector), но такие ресурсы, как файлы, сетевые соединения или подключения к базе данных, нужно освобождать сразу, как только они перестают быть нужны. Такие объекты реализуют интерфейс IDisposable, и его метод Dispose освобождает ресурс.
Объявление using var writer гарантирует, что метод Dispose у writer будет вызван автоматически, когда программа покинет охватывающую область видимости, даже если по пути возникнет исключение. Поэтому не нужно писать блок try/finally для очистки ресурсов.
Пример на C#, который можно запустить
using System;
using System.IO;
class Program
{
static void Main()
{
using var writer = new StringWriter();
writer.Write("resource-safe output");
Console.WriteLine(writer.ToString());
}
}
resource-safe outputПрактика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи