1[Conditional("DEBUG")]
2private void DEBUG_TRACE( string strMsg )
3{
4 Console.WriteLine( strMsg );
5}
這種寫法清晰,代碼簡介,容易閱讀,可以屏蔽潛在的bug。1 DEBUG_TRACE("ERROR MESSAGE1");
2 Console.WriteLine("MESSAGE");
3 DEBUG_TRACE("ERROR MESSAGE2");
對於這段代碼在RELEASE中產生的IL代碼和如下的代碼一樣。Console.WriteLine("MESSAGE");
不過使用Conditional屬性的函數有個限制,就是不能有傳回值,即必須以void來定義傳回值。
而且用Conditional來增加多個屬性,例如:
[Conditional( "DEBUG" ),Conditional( "TRACE" )]
private void DEBUG_TRACE( string strMsg )
{
Console.WriteLine( strMsg );
}
不過這兩個屬性之間的關係是或的關係,即“DEBUG”或者“TRACE”任意一個被定義了,那麼這段代碼就會被執行。如果需要增加兩個並的屬性,直接用Conditional是無法實現的,需要藉助IF/ENDIF來完成,如下:
#if( DEBUG && TRACE )
#define BOTH
#endif
[Conditional( "BOTH" )]
private void DEBUG_TRACE( string strMsg )
{
Console.WriteLine( strMsg );
}
方法已經說到這裡,可以基本上說完了。接下來,就說說如何設定環境變數,在C#中有三種設定方法。
方法一,直接在程式中加入,需要在一個檔案的開頭進行定義;
方法二,在項目中的編譯命令列中進行設定;
方法三,是在作業系統中增加環境變數。