Avatar ·

Uso correto da interface IDisposable em C#: como evitar vazamentos de memória

Olá a todos! Sou um desenvolvedor C# iniciante e não consigo entender a interface IDisposable. Li a documentação, mas ainda tenho dúvidas. Aqui está um exemplo do meu código. Eu trabalho com arquivos e bancos de dados: ```csharp public class FileProcessor { private StreamReader _reader; private SqlConnection _connection; public void ProcessFile(string path) { _reader = new StreamReader(path); _connection = new SqlConnection("..."); // Lê o arquivo e salva no banco de dados string line; while ((line = _reader.ReadLine()) != null) { // salva no banco de dados } // Eu não fecho _reader e _connection - o GC fará isso? } } ``` Eu sei que StreamReader e SqlConnection implementam IDisposable. Mas tenho várias perguntas: 1. Preciso implementar IDisposable na minha classe se uso esses recursos? 2. O que acontece se eu não chamar Dispose()? O GC coleta memória