Отображение вывода на консоль? - PullRequest
4 голосов
/ 12 июня 2010

В настоящее время я создаю клиентское приложение для местной компании. У меня есть таблица данных, связанная с таблицей клиентов, и я пытаюсь связать ее так, чтобы обновления, вставки и удаления обрабатывались правильно. Я очень новичок в c #, поэтому я начинаю с основ (как около 2 дней назад я ничего не знал - хотя я знаю vb.net, Java и несколько других языков ...).

В любом случае, из того, что я понимаю, все, что выводится через Debug.WriteLine, должно появляться только в режиме отладки (на самом деле здравый смысл), но все, что выводится через Concole.WriteLine, должно отображаться независимо от того, находится ли он в режиме отладки. Тем не менее, я проверил непосредственное и выходное окна и ничего не выводится в обычном режиме. У кого-нибудь есть идеи, почему это ??

Редактировать: у меня есть обработчики событий для щелчка по ячейке - он должен выводить CellClicked и устанавливать gridview как невидимое при щелчке по ячейке. Последний работает в любом режиме, в котором я нахожусь, но CellClicked выводится только в режиме отладки. Я использую Console.WriteLine ("CellClicked").

Редактировать: Кажется, я мог решить эту проблему - я просто установил вывод в Консольное приложение на страницах настроек проекта. Теперь он открывает окно командной строки, а также форму окна, но я могу снова изменить вывод при компиляции для распространения. Спасибо за помощь.

Ответы [ 4 ]

7 голосов
/ 12 июня 2010

Console.WriteLine() выводит в окно консоли в случае консольного приложения только .

Возможно, вы ищете Trace.WriteLine().

3 голосов
/ 12 июня 2010

Получение выходных данных Console.Write / Line (), записанных в окне вывода Visual Studio, является функцией процесса хостинга Visual Studio. Проект + Свойства, вкладка Отладка. Это не будет работать, если вы запускаете свое приложение без отладчика, процесс хостинга не используется.

Использование Console.WriteLine для отладки - не лучшее решение. Этот код будет по-прежнему выполняться в вашей сборке выпуска и займет время форматирования выходной строки. И не позволяйте оптимизатору JIT хорошо выполнять свою работу, генерируя наиболее эффективный машинный код. Выходные данные попадут в ведро с битами, на самом деле ничего не нужно записывать.

И это не нужно, отладчик дает вам гораздо лучшие инструменты, чтобы выяснить, что происходит в вашей программе. Потратьте некоторое время, чтобы ознакомиться с его возможностями. Если вы хотите узнать, работает ли обработчик событий, просто установите точку останова. Такая точка останова может даже отслеживать результат без фактического прерывания. Щелкните правой кнопкой мыши красную точку, нажмите «При ударе» и используйте опцию «Печать сообщения».

1 голос
/ 13 июня 2010

Я думаю, вам понравится инфраструктура трассировки намного лучше, чем Console.WriteLine. Трассировка дает вам много разных вариантов того, куда могут отправляться сообщения трассировки, а также возможность их включения или выключения. Вы также можете установить различные уровни вывода трассировки, чтобы можно было настроить объем выполняемой регистрации. Встроенная трассировка в .NET очень гибкая, и ее стоит изучить.

Вот пара ссылок, которые помогут вам начать:

НТН!
Chris

0 голосов
/ 12 июня 2010

Вы можете перейти в Инструменты |Варианты |Найдите «Отладка», «Общие», выберите «Перенаправить весь текст в окне вывода» в непосредственное окно или попробуйте записать вывод, предназначенный для консоли, в файл и просмотреть его там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...