Вопрос

Кажется , что

являются в основном одинаковыми, за тем заметным исключением, что Отлаживать использование компилируется в конфигурации выпуска.

Когда бы вы использовали одно, а не другое?Единственный ответ на этот вопрос, который я откопал до сих пор, заключается только в том, что вы используете Отлаживать класс для генерации выходных данных, которые вы видите только в конфигурации отладки, и Трассировка останется в конфигурации выпуска, но на самом деле это не дает ответа на вопрос в моей голове.

Если вы собираетесь инструментализировать свой код, зачем вам вообще использовать Отлаживать, поскольку Трассировка можно ли отключить без перекомпиляции?

Это было полезно?

Решение

Главное отличие - это то, на которое вы указываете:Отладка не включена в релиз, в то время как трассировка включена.

Предполагаемое различие, насколько я понимаю, заключается в том, что команды разработчиков могут использовать Debug для отправки подробных описательных сообщений, которые могут оказаться слишком подробными (или раскрывающими) для потребителя (ов) продукта, в то время как Trace предназначен для отправки сообщений, которые более конкретно ориентированы на инструментирование приложения.

Отвечая на ваш последний вопрос, я не могу придумать причину использовать Debug для обработки фрагмента кода, который я намеревался выпустить.

Надеюсь, это поможет.

Другие советы

Debug используется исключительно в целях отладки.Он выдает расширенные сообщения при выполнении отладки (режим отладки).

Трассировка помогает в отладке приложений, исправлении ошибок и профилировании (после выпуска).

Класс Debug бесполезен в режиме выпуска.

Единственное различие между trace и debug заключается в том, что инструкции trace по умолчанию включаются в программу при ее компиляции в сборку выпуска, тогда как инструкции debug - нет.

Таким образом, класс debug в основном используется для отладки на этапе разработки, в то время как trace может использоваться для тестирование и оптимизация после того, как приложение будет скомпилировано и выпущено.

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

Я бы рассмотрел возможность использования log4net для отслеживания, поскольку его возможности гораздо более гибкие и надежные.

Но для получения настоящих отладочных сообщений, которые я никогда не хочу, чтобы кто-либо, кроме меня или внутреннего тестировщика, видел, я бы, вероятно, придерживался Debug .

Вы сами ответили на свой вопрос.Если бы сообщения отладки оставались внутри, люди могли бы их видеть.Например, допустим, вы делаете:

Debug.WriteLine("Connecting to DB with username: blah and PW: pass");

Любой, кто декомпилирует ваш код, может это увидеть.Но это может быть чем-то жизненно важным для вас, что вы должны знать во время тестирования.

Трейс - это другое.Если вы собираетесь выполнять трассировку, я бы, скорее всего, просто использовал log4net.

Это полная разница между трассировкой и отладкой:Как для отладки, так и для трассировки используется System.Пространство имен Diagnostics.

Отлаживать

  • Он использует класс Debug.
  • Он используется в отладочной сборке.
  • Он использует время разработки приложения.
  • В режиме отладки компилятор вставляет некоторый отладочный код внутрь исполняемого файла.
  • Класс Debug работает только в режиме отладки.
  • Анализ производительности не может быть выполнен с помощью Debug.
  • Отладка используется для поиска ошибки в программе.
  • Для отладки мы можем использовать Debug.Метод Write().
  • Отладка выполняется в том же потоке, что и выполнение основной программы.

Трассировка

  • Он использует класс трассировки.
  • Инструкция трассировки включается по умолчанию, когда программа компилируется в выпущенную сборку.
  • Класс Trace используется для тестирования и оптимизации даже после того, как приложение скомпилировано и выпущено.
  • Класс трассировки работает как в режиме отладки, так и в режиме выпуска.
  • Трассировка выполняется в другом потоке из основного потока выполнения программы.
  • Для трассировки мы можем использовать Trace.Метод Write().
  • Он использует время развертывания приложения.

ссылка : острый угол csharp

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top