1
resposta

Duvida sobre o dispose do StreamReader

Minha dúvida é sobre o dispose do StreamReader, para garantir eu preciso usar o using (var reader = new StreamReader(stream)) mesmo assim ainda é preciso chamar o close no final? No meu código eu chamei o close, é a maneira certa de fazer?

          var stream = File.Open(@"C:\Temp\Texto.txt", FileMode.OpenOrCreate);
            using (var reader = new StreamReader(stream))
            {
                try
                {
                    var linha = reader.ReadLine();

                    var builder = new StringBuilder();
                    builder.AppendLine(linha);

                    while (linha != null)
                    {
                        linha = reader.ReadLine();
                        builder.AppendLine(linha);
                    }
                    texto.Text = builder.ToString();
                }
                finally
                {
                    reader.Close();
                    stream.Close();
                }
            }
1 resposta

Fala, xará!

Não precisa não! Veja o código fonte do método Close da StreamReader:

public override void Close()
{
    this.Dispose(true);
}

Ele chama o método Dispose também! Então, não precisa chamar o método Close quando o Stream está dentro de um using.