Как вывести все, что есть в консоли - C#

Узнай цену своей работы

Формулировка задачи:

Вывел я в консоль "Hello World", а потом "CyberForum". Могу ли я получить в виде строки все, что я вывел (и еще желательно ввел)?

Решение задачи: «Как вывести все, что есть в консоли»

textual
Листинг программы
  1. class Program {
  2.     class ConsoleStream : TextWriter {
  3.         private TextWriter _inner;
  4.         private string _content;
  5.  
  6.         public override Encoding Encoding => _inner.Encoding;
  7.  
  8.         public ConsoleStream(TextWriter inner) {
  9.             _inner = inner;
  10.             _content = string.Empty;
  11.         }
  12.  
  13.         public override string ToString() {
  14.             return _content;
  15.         }
  16.  
  17.         private void WriteInternal(string value) {
  18.             _inner.Write(value);
  19.             _content += value;
  20.         }
  21.  
  22.         public override void WriteLine() {
  23.             WriteInternal(NewLine);
  24.         }
  25.  
  26.         public override void Write(string value) {
  27.             WriteInternal(value);
  28.         }
  29.  
  30.         public override void WriteLine(string value) {
  31.             Write(value);
  32.             WriteLine();
  33.         }
  34.     }
  35.  
  36.     static void Main(string[] args) {
  37.         var cs = new ConsoleStream(Console.Out);
  38.         Console.SetOut(cs);
  39.  
  40.         for (int i = 0; i < 10; i++) {
  41.             Console.WriteLine(i);
  42.             Task.Delay(100).Wait();
  43.         }
  44.  
  45.         Console.WriteLine("------");
  46.         Console.Write(cs.ToString());
  47.     }
  48. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы