2014-01-06 57 views
1

我剛剛讀了http://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute.aspxConditionalAttribute vs Comments

而且我努力理解不同的是使用

[Conditional("CONDITION1")] 

與/之間有什麼不

#define CONDITION1 

,只是評論/取消註釋的方法?

ConditionalAttribute使編譯器忽略方法或屬性的唯一目的是什麼?如果是這樣,爲什麼不使用評論?如果不是,與僅使用註釋相比有什麼優勢?

+1

您可以在構建時輕鬆定義符號,例如'csc/define:CONDITION1'。評論整個方法體非常困難。 – Lee

+1

在我看來,你將能夠重複使用它的多種方法。這樣你在註釋中就不會有一半的代碼,但你只有一個'#define CONDITION1'。 –

回答

3

使用條件屬性,您可以使用單個步驟啓用和禁用多個代碼部分,而無需通過源代碼查找和評論/取消註釋多個位置。

條件屬性還可以提供信息,以爲什麼某些代碼啓用或禁用(例如,用於調試的目的等)

此外,你應該更喜歡有條件的屬性條件編譯(#if等),在Effective C#中解釋。