c#中的預處理器指令
#if如果 c# 編譯器遇到最後面跟有 #endif 指令的 #if 指令,則僅當指定的符號已定義時,它才會編譯這兩個指令之間的**。
c# 中的 #if 語句是 boolean,僅測試符號是否已定義。
運算子 &&(與)和 ||(或)可用來評估多個符號是否已定義。 還可以用括號將符號和運算子分組。
結合使用 #if 與 #else、#elif、#endif、#define 和 #undef 指令,可以根據乙個或多個符號是否存在來包含或排除**。在編譯除錯版本的**或針對特定配置進行編譯時,這會很有用。
以 #if 指令開始的條件指令必須用 #endif 指令顯式終止。
#else
#else 允許您建立復合條件指令,因此,如果前面的 #if 或(可選)#elif 指令中的任何表示式都不為 true,則編譯器將計算 #else 與後面的 #endif 之間的所有**。
#elif
#elif 使您得以建立復合條件指令。如果前面的 #if 和前面的任何 #elif(可選)指令表示式的計算結果都不是 true,則將計算 #elif 表示式。如果 #elif 表示式計算為 true,編譯器將計算位於 #elif 和下乙個條件指令之間的所有**。
使用 #elif 更簡單,因為每個 #if 都需要乙個 #endif,而 #elif 即使在沒有匹配的 #endif 時也可以使用。
#endif
#endif 指定以 #if 指令開頭的條件指令的結尾
#define
#define 可讓您定義符號。 當您將符號用作傳遞給 #if 指令的表示式時,此表示式的計算結果為 true
注意:不能像在 c 和 c++ 中的通常做法一樣,使用 #define 指令來宣告常數值。最好是將 c# 中的常數定義為類或結構的靜態成員。如果具有多個像這樣的常數,可以考慮建立乙個單獨的「constants」類來儲存這些常數。
例如:#define debug
#define vc_v6
using system;
public class myclass }
如上所示:由於debug 和 vc_v6 都定義了,所以,高亮**執行.其他**不執行.
#undef
#undef 使您可以取消符號的定義,以便通過將該符號用作 #if 指令中的表示式,使表示式的計算結果為 false。
#define debug
#undef debug
using system
class mytest
static void main()
#if debug
console.writeline(「debug is defined」);
#else
console.writeline(「debug is not defined」);
#endif
}執行結果為:debug is not defined
#warning
#warning 使您得以從**的特定位置生成一級警告。 例如:
#define debug
class mainclass
static void main()
#if debug
#warning debug is defined
#endif
#error
#error使您可以從**中的特定位置生成錯誤。例如:
#define debug
class mainclass
static void main()
#if debug
#error debug is defined
#endif
#region
#region 是大家最為熟悉的指令,它使您可以在使用 visual studio **編輯器的大綱顯示功能時指定可展開或摺疊的**塊。 在較長的**檔案中,能夠摺疊或隱藏乙個或多個區域會十分便利,這樣,您可將精力集中於當前處理的檔案部分。 下面的示例演示如何定義區域:
#region myclass definition
public class myclass
static void main()
#endregion
#region 塊必須以 #endregion 指令終止。
#region 塊不能與 #if 塊重疊。但是,可以將 #region 塊巢狀在 #if 塊內,或將 #if 塊巢狀在 #region 塊內。
#endregion
#endregion 標記 #region 塊的結尾
C 預處理器
偶爾翻c 的教材,看到了一些以前自己不太關注的角落。參考教材 c 大學教程 harvey m.deitel 和paul james deitel著。預處理發生在編譯之前,包括把其他檔案包含到要編譯的檔案中 定義符號常量和巨集 程式 的條件編譯以及預處理指令的條件執行。對應的,預處理指令有 檔案包含命...
C 預處理器
預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...
C 預處理器
預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...