ConditionalAttribute vs Debugger.IsAttached - PullRequest
       12

ConditionalAttribute vs Debugger.IsAttached

1 голос
/ 27 февраля 2012

В чем разница между ConditionalAttribute и Debugger.IsAttached ?? Какой из этих механизмов лучше использовать ??

Если я напишу:

[Conditional("DEBUG")]
private void Method() 
{ 
   //Code
} 

будет таким же, как:

private void Method()
{ 
    if (Debugger.IsAttached)
    { 
        //Code
    } 
}

1 Ответ

3 голосов
/ 27 февраля 2012

Атрибут работает для компиляции. Если флаг DEBUG не установлен, метод исключается из создаваемого двоичного файла.

Отладчик подключен проверяет, подключен ли отладчик. Но отладчик может быть подключен к любому типу сборки (Release, Debug и т. Д.)

Так как они совершенно разные, я не думаю, что их можно сравнить, для которых "лучше". Они делают разные вещи. Если вы хотите что-то для отладочной сборки, которое вообще не должно влиять (например, на производительность) на производственную сборку, используйте атрибут.

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