2010-06-12 4 views
4

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

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

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

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

ответ

7

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

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

+0

Трассировка - это, по-видимому, форма отладки - ее не отладка, которую я хочу сделать. Использование режима отладки добавляет к количеству времени, которое требуется для загрузки приложения (по крайней мере, я не вижу его, уменьшая время.), поэтому я хочу как можно больше избегать использования режима отладки. Я хочу вывести нечетную инструкцию сейчас, а затем проверить, что она достигает определенных точек в правильное время, не используя режим отладки. – ClarkeyBoy

+1

Вы можете включить или отключить трассировку. Это приложение не обязательно должно быть в режиме отладки. – starskythehutch

+0

@ClarkeyBoy: То, что вы описываете, ТОЧНО, что такое трассировка. Вам не обязательно иметь приложение в режиме отладки, чтобы включить трассировку ... –

0

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

3

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

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

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

+0

+1 для параметра «Когда ударил» => «Сообщение для печати» :) –

1

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

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

НТН!
Chris

Смежные вопросы