W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
預處理器指令為編譯器提供有關代碼區(qū)域的附加信息。
最常見的預處理器指令是條件指令。
例子:
#define DEBUG
class MyClass{
int x;
void OneMethod(){
#if DEBUG
Console.WriteLine ("Testing: x = {0}", x);
#endif
}
...
}
在上面的代碼中,OneMethod被編譯為有條件地依賴于DEBUG符號的存在。
如果我們刪除DEBUG符號,則不編譯該語句。
使用#if和#elif指令,我們可以使用||,&&和!運算符執(zhí)行或,和,而不是對多個符號的運算。如果定義了TESTMODE符號并且未定義DEBUG符號,則以下指令指示編譯器包括以下代碼:
#if TESTMODE && !DEBUG
...
#error和#warning符號防止意外誤用條件指令。
下表列出了預處理器偽指令。
預處理器指令 | Action |
---|---|
#define symbol | 定義符號 |
#undef symbol | 未定義符號 |
#if symbol[operator symbol2]... | 符號到測試運算符是==,!=,&&和||后跟#else,#elif和#endif |
#else | 對隨后的#endif執(zhí)行代碼 |
#elif symbol[operator symbol2] | 結合#else分支和#if測試 |
#endif | 結束條件指令 |
#warning text | 在編譯器中輸出警告文本 |
#error text | 在編譯器中輸出錯誤文本 |
#pragma warning [disable | restore] | 禁用或恢復編譯器警告 |
#line [number["file"] | hidden] | number指定源代碼中的行; file是在計算機輸出中出現(xiàn)的文件名; |
#region name | 標記輪廓的開始 |
#endregion | 結束輪廓區(qū)域 |
為此,編譯器允許您使用#pragma warning指令選擇性地抑制警告。
在這個例子中,我們指示編譯器不要警告我們消息未被使用的字段:
public class Foo{
static void Main() { }
#pragma warning disable 414
static string Message = "Hello";
#pragma warning restore 414
}
省略#pragma warning指令中的數(shù)字將禁用或恢復所有警告代碼。
我們可以使用/warnaserror編譯代碼,以告訴編譯器將任何殘留警告視為錯誤。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: