Я только что написал умную программу под названием helloworld. Это консольное приложение C# /. NET 4.5. Внутри скрученных вложенных лабиринтов логики используется Console.WriteLine().Как увидеть вывод программы консоли C# при работе в VS?
Когда я запускаю это в командной строке, он запускается, и я вижу результат. Я могу выполнять другие команды и немного путаться, а затем прокручивать вверх, чтобы снова увидеть результат.
Теперь я нахожусь в Visual Studio, настраивая источник («Привет» более эффективен, чем «Привет») и тестирование, нажав F5. Случается, что окно консоли появляется и сразу исчезает. Я понятия не имею, что напечатала программа. Как я могу увидеть результат?
Я не хочу изменять свой источник вообще. После поиска решений я нахожу тех, кто говорит, что использует Console.ReadKey(), но потом он сосать, чтобы использовать программу в командной строке. Нет реальной причины, по которой пользователь должен будет нажать клавишу, когда программа уже выполнила свою работу. Даже если я пойду с этим, проблема с выходом исчезает, когда окно консоли закрывается после нажатия клавиши.
Я не хочу использовать Debug.WriteLine(), который записывает в окно вывода в VS, но не пишет обычный вывод для конечного пользователя.
Я обнаружил ctrl-F5, который запускает программу, как если бы она имела конечную строку Console.ReadKey(), но по-прежнему существует проблема, когда я нажимаю любую клавишу, все выходные данные исчезают вместе с окном. Через три минуты я думаю: «О, подожди, напечатал ли он« Привет »или« Хело »? Нет возможности проверить.
Похоже, что Visual Studio IDE должна каким-то образом захватить все, что только что созданная программа запишет в свою стандартную версию или эквивалент Microsoft, и показать ее на панели «Выход» или на какой-либо панели для последующего анализа. Может быть, он это делает, и я еще не знаю трюк? Похоже, это было бы общим желанием среди миллионов разработчиков C#.
Хороший вопрос. Единственное постоянное состояние находится в окне вывода, поэтому звучит так, как будто вам нужно будет писать дважды. Однажды на консоль и один раз на отладчик. – BradleyDotNET
Лично я бы не захотел, чтобы IDE попыталась догадаться, что я хочу сделать, я бы хотел, чтобы последовательное поведение было независимо от того, где был выполнен код. – barrick
Вы слышали о TraceListeners? Один поток, с несколькими возможными пунктами назначения. –