Консольные приложения в .NET
Приложения .NET могут использовать класс System.Console для выполнения консольного ввода-вывода символов. Данные, поступающие от консоли, считываются из стандартного потока ввода, выводимые на консоль данные записываются в стандартный поток вывода, а сведения об ошибках записываются в стандартный поток вывода ошибок. Эти потоки автоматически связываются с консолью при запуске приложения и представлены свойствами In, Out и Error соответственно.
Значением свойства Console.In является объект System.IO.TextReader, а значениями свойств Console.Out и Console.Error — объекты System.IO.TextWriter. Эти свойства можно связывать с потоками, не представляющими консоль, что позволяет задать для любого из потоков другой источник или приемник данных. Например, можно перенаправить вывод в файл, присвоив свойству Console.Out объект System.IO.StreamWriter, инкапсулирующий System.IO.FileStream с помощью метода Console.SetOut. Свойства Console.In и Console.Out не обязательно должны быть связаны с одним потоком.
Примечание.
Дополнительные сведения о построении консольных приложений, включая образцы в C#, Visual Basic, и C++, см. в документации к классу Console.
При отсутствии консоли, например в приложении Windows Forms, выводимые в стандартный поток вывода данные не отображаются для пользователя, так как их некуда выводить. Запись информации в недоступную консоль не приводит к возникновению исключения. (Вы всегда можете изменить тип приложения на консольное приложение, например на страницах свойств проекта в Visual Studio.)
У класса System.Console имеются методы, позволяющие считывать с консоли отдельные символы или целые строки. Другие методы выполняют преобразование данных и форматирование строковых значений, а затем выводят отформатированные строки на консоль. Дополнительные сведения о форматировании строк см. в статье Типы форматирования.
Совет
У консольных приложений отсутствует запускаемый по умолчанию механизм сообщений. Поэтому вызовы таймеров Microsoft Win32 из такого приложения могут завершаться неудачей.