Tópicos importantes de C#

Liberar recursos com IDisposable e using em C#

Nesta lição, você vai usar a declaração using para garantir que os recursos sejam sempre liberados na hora certa, mesmo quando ocorre um erro.

Introdução

No .NET, a memória é recuperada automaticamente pelo coletor de lixo (garbage collector), mas recursos como arquivos, conexões de rede ou de banco de dados devem ser liberados assim que deixam de ser usados. Esses objetos implementam a interface IDisposable, com o método Dispose para liberar o recurso.

A declaração using var writer garante que o método Dispose de writer seja chamado automaticamente quando o programa sai do escopo em que ele está, mesmo se ocorrer uma exceção no meio. Assim você não precisa escrever um bloco try/finally para limpar os recursos.

Exemplo de C# executável

C#
Rodar código →
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());
    }
}
Resultado da execução
resource-safe output

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios