3. #warning和#error
這也是兩個很有用的預處理器指令,編譯器遇到它們時,會分別產生警告或錯誤信息。如果遇到#warning指令,會向用戶顯示#warning指令後面的文本。實際上,在VS2005中,IDE會直接將信息標識出來:
而如果編譯器遇到#error,就會立即退出編譯,不會產生IL代碼。
使用這兩個指令可以檢查#define是不示做錯了什麼事,使用#warning可以讓自己想起做什麼事。
#if DEBUG && RELEASE
#error "You 've define xxxx!"
#ednif
#warning "Don't forgot to removexxxxxx!"
Console.WriteLine("I have this job");
4. #region和#endregion
#region和#endregion指令用於把一段代碼標記為有指定名稱的一個塊,如下所示:
#region private methods
private int x;
private int y;
#endregion
這兩個指令不會影響編譯過程。但可以為VS編輯器所識別,從而使得代碼顯示布局更為清晰。
5. #line
可以用於改變編譯器在警告和錯誤信息中顯示的文件的名字和行號信息。如果編寫代碼時,在把代碼發給比編譯器前,要使用某些軟件包改變鍵入的代碼,玖可以使用者個指令,因為這意味著比編譯器的報告的行號或文件名與文件中的行號或編譯的文件名不匹配。#line指令可以用於恢復這種匹配也可以使用語法#line default 把行號恢復默認。
#line 164 "cORE.CS"
#LINE default
6. #pragma,#pragma warning,#pragma checksum
#pragma:為編譯器提供特殊的指令,說明如何編譯包含雜注的文件。
#pragma warning:可啟用或禁用某些警告。
#pragma checksum:生成源文件的校驗和,以幫助調試ASP.Net頁。
可以抑制或恢復指定的編譯警告。與命令行選項不同,#pragma指令可以在類和方法上執行,對抑制什麼警告和抑制的時間進行更精細的控制。
#pragma warning disable 169
public class Aclass
{
int nFiled;
}
#pragma warning restore 169
這些預處理指令詳見MSDN:
#if
#else
#elif
#endif
# define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning
#pragma checksum