C#編譯器遇到一個由#if和#endif包圍起來的語句塊時,會檢查#if后面的符號是否已經被定義了,如果已經被定義,那么才會編譯語句塊之間的代碼。而定義一個可以被#if測試的符號需要事先用#define指令定義。
#define MACRO1
using System;
public class Program
{
public static void Main()
{
#if (MACRO1)
console.writeline("MACRO1 is defined.");
#elif (MACRO2)
console.writeline("MACRO2 is defined and MACRO1 is not defined");
#else
console.writeline("MACRO2 and MACRO1 are both defined");
#endif
}
}
如果用vs,會看到開發環境將不編譯的代碼顯示為灰色。符號常量必須在using指令之前定義。