Eu não entendi o porquê dos dois Using.
a aplicação já não foi fechada no primeiro?
Eu não entendi o porquê dos dois Using.
a aplicação já não foi fechada no primeiro?
Tanto a classe FileStream como a StreamReader implementam de alguma forma a interface IDisposable que possui o método Dispose().
Cada using é responsável por uma classe e ao final da execução do código dentro das chaves, cada using finaliza sua classe de forma individual (executado método Dispose()).
using (var fluxoDeArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
using (var leitor = new StreamReader(fluxoDeArquivo))
{
// Codigo dos dois using
}
Outro exemplo de uso, é quando a aplicação pode ter finalizado o uso do segundo using, mais não do primeiro, desta forma ela executa apenas o método Dispose do segundo e continua usando o primeiro.
using (var fluxoDeArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
{
//codigo do primeiro using ....
...
...
using (var leitor = new StreamReader(fluxoDeArquivo))
{
// codigo do segundo using ....
} //Finaliza segundo using
//codigo do primeiro using ....
...
} //Finaliza primerio using