預處理程式指令

預處理程式指令通常用於使源程式易於更改,並且易於在不同的執行環境中編譯。原始檔中的指令告訴前處理器執行特定操作。例如,前處理器可以替換文字中的標記,將其他檔案的內容插入到原始檔中,或者通過刪除文字部分來禁止編譯部分檔案。在巨集擴充套件之前識別並執行前處理器行。因此,如果巨集擴充套件為看起來像前處理器命令的內容,則前處理器無法識別該命令。

預處理程式語句使用與原始檔語句相同的字符集,但不支援轉義序列。預處理程式語句中使用的字符集與執行字符集相同。前處理器還可識別負字元值。

條件表示式

條件表示式(#if#elif 等)確實支援布林運算子的有限子集。他們是:

  • ==!=。這些只能用於測試符號是真(定義)還是假(未定義)
  • &&||!
  • ()

例如:

#if !DEBUG && (SOME_SYMBOL || SOME_OTHER_SYMBOL) && RELEASE == true
Console.WriteLine("OK!");
#endif

會編譯列印“OK!”的程式碼。如果未定義 DEBUG,則向控制檯定義 SOME_SYMBOLSOME_OTHER_SYMBOL,並定義 RELEASE

注意:這些替換在編譯時完成*,*因此無法在執行時進行檢查。通過使用 #if 消除的程式碼不是編譯器輸出的一部分。

另請參閱: MSDN 上的 C#前處理器指令