Sobes.tech
Junior — Middle

Explique a finalidade e o uso da interface IDisposable no .NET

sobes.tech IA

Resposta da IA

A interface IDisposable no .NET destina-se a libertar recursos não geridos, como ficheiros, ligações de rede, descritores, etc. Ela contém um método — Dispose(), que é chamado para libertar explicitamente os recursos.

A utilização de IDisposable permite controlar o momento da libertação dos recursos, o que é importante para evitar fugas de memória e bloqueios.

Exemplo de utilização:

class ResourceHolder : IDisposable
{
    private FileStream fileStream;

    public ResourceHolder(string filePath)
    {
        fileStream = new FileStream(filePath, FileMode.Open);
    }

    public void Dispose()
    {
        fileStream?.Dispose();
    }
}

// Utilização com a instrução using
using (var resource = new ResourceHolder("file.txt"))
{
    // Trabalhar com o recurso
}
// Após sair do using, Dispose() é chamado automaticamente

Assim, IDisposable ajuda a gerir o ciclo de vida dos recursos e garante a sua libertação correta.