Sobes.tech
Junior — Middle

Por que é importante gerir a libertação de memória manualmente em alguns casos?

sobes.tech IA

Resposta da IA

Em C# geralmente usa-se o coletor de lixo (Garbage Collector), que liberta automaticamente a memória não utilizada. No entanto, em alguns casos, é importante gerir manualmente a libertação de memória:

  • Quando um objeto utiliza recursos não geridos (ficheiros, ligações de rede, descritores) que não são controlados pelo coletor de lixo.
  • Para libertar recursos atempadamente e evitar fugas e bloqueios.

Para isso, implementa-se a interface IDisposable e o método Dispose(), onde os recursos são libertados explicitamente.

Exemplo:

class FileHandler : IDisposable
{
    private FileStream _fileStream;

    public FileHandler(string path) {
        _fileStream = new FileStream(path, FileMode.Open);
    }

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

Assim, a gestão manual da libertação de memória é importante para controlar recursos e prevenir problemas de desempenho e estabilidade da aplicação.