Sobes.tech
Middle

Para que serve a interface IDisposable em C#?

sobes.tech IA

Resposta da IA

A interface IDisposable é usada para implementar o padrão de libertação de recursos que são geridos fora do ambiente CLR (por exemplo, descritores de ficheiros, ligações de rede, handles do WinAPI).

Objetivos principais:

  • Libertação determinista de recursos: Permite libertar explicitamente recursos não geridos imediatamente, em vez de esperar que o coletor de lixo invoque o finalizador (se existir).
  • Prevenção de fugas de recursos: Garante que recursos críticos sejam libertados após uso, mesmo que ocorram exceções.
  • Uso com a palavra-chave using: A construção using invoca automaticamente o método Dispose() do objeto que implementa IDisposable ao terminar o bloco de código, garantindo uma libertação fiável.

A implementação inclui o método Dispose() sem parâmetros, que realiza a libertação de recursos. Frequentemente, o padrão inclui um finalizador (destruidor) para libertar recursos caso Dispose() não tenha sido chamado explicitamente, embora seja recomendado evitar finalizadores e confiar no using.

public interface IDisposable
{
    void Dispose();
}