В чем разница между консолью.WriteLine () vs Debug.WriteLine()?


В чем разница между Console.WriteLine() vs Debug.WriteLine()?

3 73

3 ответа:

Console.WriteLine() предназначен для программ консольного режима. Хорошая особенность процесса размещения Visual Studio делает его вывод отображается в окне вывода Visual Studio при отладке для процессов, которые не имеют консоли. Это очень полезно при отладке, но будьте осторожны, что вы должны удалить этот код (или обернуть его с #ifdef DEBUG) когда вы будете готовы создать сборку. В противном случае это добавит ненужные накладные расходы в вашу программу. Это делает его менее идеальным для отладки трассировка.

Debug.WriteLine() генерирует информацию трассировки, если вы строите с DEBUG условное #определены. Который включен по умолчанию в отладочной сборке. Где вывод заканчивается может быть настроен в . Если эта конфигурация не переопределена, .NET автоматически предоставляет экземпляр DefaultTraceListener класса. Он посылает Debug.WriteLine() текст с окна OutputDebugString() функция API для отладчика. Отладчик Visual Studio делает это в окне вывода, так же, как Console.WriteLine().

явное преимущество Debug.WriteLine() заключается в том, что он не создает накладных расходов в сборке выпуска, вызовы эффективно удаляются. Однако он не поддерживает составное форматирование, вам понадобится String.Format() для этого. Для трассировки отладки класс Debug должен быть вашим выбором.

Если ваша цель использования консоли.WriteLine предназначен исключительно для отладки, вы лучше использовать отладка.Строку.

Если вы хотите показать сообщение пользователю, вы бы использовали