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.