Oi Jeffer
O objetivo do exercício era mostrar o uso do polimorfismo dentro das bibliotecas padrões da linguagem C#.
Como você viu no exercício, a classe StreamReader
é filha de TextReader
, então para ler as informações de um arquivo, podemos utilizar o seguinte codigo:
Stream entrada = File.Open("entrada.txt", FileMode.Open);
TextReader leitor = new StreamReader(entrada);
string linha = leitor.ReadLine();
// código que processa as linhas do arquivo
Agora para ler as linhas do terminal, utilizamos o Console.In
, uma instância de TextReader
, então o código de leitura de informações do terminal poderia ser escrito da seguinte forma:
TextReader leitor = Console.In;
string linha = leitor.ReadLine();
// código que processa as linhas do terminal
Veja que o código da leitura de arquivos é basicamente igual ao de leitura do terminal, o que muda é a implementação da classe TextReader que está sendo utilizada.