C# · Intermediário · Inglês · Técnico
IDisposable
Interface com o método Dispose, usada por tipos que seguram recursos não gerenciados ou escassos, como arquivos, conexões e sockets, para liberá-los de forma determinística.
Onde usar
Aparece quando o analisador avisa CA2000 ou quando uma conexão fica aberta por vazamento. Sempre envolva objetos IDisposable em using para que o Dispose rode mesmo se houver exceção.
Em código
using var c = new Conexao(); // fecha no fim
class Conexao : IDisposable
{
public void Dispose()
=> Console.WriteLine("fechou");
}Exemplos
That class implements IDisposable, wrap it in a using.
Essa classe implementa IDisposable, envolva em um using.
The connection leaked because nobody called Dispose.
A conexão vazou porque ninguém chamou Dispose.
Cuidado
Não é o garbage collector chamando por você: o GC não chama Dispose, só o finalizador, se existir, e em hora imprevisível.