В чем разница между debug.write и Trace.write? Когда каждый должен использоваться?
В чем разница между debug.write и Trace.write?
Ответ 1
В типичной конфигурации сборки релиза класс Debug
отключен и ничего не делает. Trace
, однако, все еще можно использовать в релизе. Обычно вы используете Debug.Write
для вещей, которые вам нужны только при отладке и которые слишком многословны для производства.
Вот хорошая статья о Debug, Trace
и т.д.: http://www.codeproject.com/KB/trace/debugtreatise.aspx
Однако я больше склонен использовать библиотеки ведения журнала, такие как log4net, которые можно переконфигурировать "на лету". Таким образом, вы можете включить полный вход в систему, если вы изучаете проблемы с вашим приложением.
Ответ 2
Debug.Write
действует только на сборках, где определяется флаг DEBUG
, а Trace.Write
действует только при определении флага TRACE
.
Ответ 3
Одно из отличий заключается в том, что DEBUG определен (по умолчанию) только в конфигурации сборки проекта Debug и TRACE определен (опять же по умолчанию) в конфигурации отладки и выпуска. (По крайней мере, в VS 2015.)
Вы можете изменить поведение по умолчанию для каждого проекта в свойствах проекта.