Нет, члены класса Debug
(с атрибутом ConditionalAttribute
) не излучают IL. нет явного упоминания в MSDN , однако следующие две цитаты довольно хорошо подразумевают поведение, поэтому для дополнения ответа Роя:
Если вы используете методы в классе Debug для печатиотлаживая информацию и проверяя свою логику с помощью утверждений, вы можете сделать свой код более надежным, не влияя на производительность и размер кода вашего продукта доставки.
Таким образом, никакая разница в размере не подразумевает никакого вывода этих данных, и
Атрибут ConditionalAttribute применяется к методам отладки.Компиляторы, которые поддерживают ConditionalAttribute, игнорируют вызовы этих методов, если «DEBUG» не определен как символ условной компиляции.Обратитесь к документации компилятора, чтобы определить, поддерживается ли ConditionalAttribute, и синтаксису для определения условного символа компиляции.
Это означает, что на уровне компилятора эти вызовы даже не будут рассматриваться (когда DEBUG
не определено.)