Важные темы C#

Освобождение ресурсов с IDisposable и using в C#

В этом уроке вы с помощью объявления using гарантируете, что ресурсы всегда освобождаются вовремя, даже при ошибке.

Введение

В .NET память автоматически освобождает сборщик мусора (garbage collector), но такие ресурсы, как файлы, сетевые соединения или подключения к базе данных, нужно освобождать сразу, как только они перестают быть нужны. Такие объекты реализуют интерфейс IDisposable, и его метод Dispose освобождает ресурс.

Объявление using var writer гарантирует, что метод Dispose у writer будет вызван автоматически, когда программа покинет охватывающую область видимости, даже если по пути возникнет исключение. Поэтому не нужно писать блок try/finally для очистки ресурсов.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
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

Практика с отладчиком

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

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи