2012-02-27 15 views
1

ConditionalAttribute和Debugger.IsAttached之間的區別是什麼? 哪種機制更好用?ConditionalAttribute vs Debugger.IsAttached

如果我寫:

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

將是相同的,如:

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

回答

3

屬性適用於編譯。如果未設置DEBUG標誌,則從生成的二進制文件中省略該方法。

附加調試器檢查是否連接了調試器。但是一個調試器可以連接到ny種類的版本(發佈,調試等)

由於它們有很大的不同,我不認爲它們可以比較哪一個更好。他們做不同的事情。如果您希望某些調試版本對生產版本完全無效(例如,性能),請使用該屬性。

相關問題