天天看點

C#預處理

<b></b>   C#定義了多個預處理指令,它們可以改變編譯系統解釋源程式檔案的方式。在把程式翻譯為目标代碼之前,預處理指令首先對源檔案中的文本産生作用,即編譯哪些文本。C#中所有的預處理指令都以#開頭,并且每個預處理指令都單獨占用一行。C#2.0中的預處理指令如下表。

                                    C#預處理指令

C#預處理

<b>7.2.1 #define</b><b>指令 </b>

<b></b>

#define指令用于定義一個稱為符号(symbol)的字元序列。#if和#elif指令可以判斷某個符合是否已經存在,并據此控制編譯過程。#define指令的基本形式如下:

#define symbol

注意,這裡沒有以分号結束,因為它不是C#的語句,而是一個預處理指令。#define和symbol之間至少要用一個空格隔開。C#該指令不同于C和C++中的#define指令(C、C++中是用來定義宏的)。

例如:

#define Windows

7.2.2 #if<b>、</b><b>#elif</b><b>、</b><b>#else</b><b>和</b><b>#endif</b><b>指令 </b>

<b></b>#if指令的基本形式如下:

#if symbol_expression_1

statement_sequence_1

#elif symbol_expression_2

statement_sequence_2

#else

statement_sequence_n

#endif

<b></b>其中,symbol_expression_i是一個symbol或多個symbol構成的邏輯表達式。如果表達式的值為真,則編譯statement_sequence_i,如果所有的symbol_expression都為假,則編譯statement_sequence_n

例 P7_5

<b></b> 

<b>7.2.3 #undef</b><b>指令 </b>

#undef指令可以取消之前定義的符号,基本形式如下:

#undef symbol

#define SMALL

//這個位置之前SMALL是被定義的

#if SMALL

#undef SMALL

<b>7.2.4 #error</b><b>指令 </b>

#error指令主要用于調試,它可以迫使編譯器停止編譯。該指令的基本形式如下:

#error error_message

其中,error_message是錯誤資訊。例如:

#error An error occurred here!

7.2.5 #warning<b>指令 </b>

#warning類似于#error,不過它産生的是警告消息而不是錯誤消息。是以,編譯過程不會停止。其基本形式如下:

#warning warning_message

7.2.6 #line<b>指令 </b>

#line指令可以為它所在的檔案設定行号和檔案名。編譯過程中如果出現錯誤或警告就會用到這裡的行号和檔案名。#line指令的基本形式為:

#line number "filename"

其中,number是任意的正整數,它用作新行的行号。可選的filename表示一個任意有效的檔案辨別符,它被用作新的檔案名。#line主要用于調試和特殊的應用程式。

#line指令還有兩個選秀,一個是default,它根據原來的位置傳回行号。其用法為:

#line default

另一個是hidden,在逐漸調試一個程式的時候,hidden選項允許編譯器跳過該指令與下一個不包含hidden選項的#line指令之間的行。其用法如下:

#line hidden

7.2.7 #region<b>和</b><b>#endregion</b><b>指令 </b>

#region和#endregion用于定義一個區域,該區域可以在Visual Studio IDE的大綱視圖中被擴充或收縮。其基本形式如下:

#region region_name

//code

#endregion

其中,region_name用于指定區域的名稱

7.2.8 #program<b>指令 </b>

<b></b>#program指令是C#2.0新增的,它用于給出指令,例如為編譯器指定選項。其基本形式如下:

#program option

其中,option是傳遞給編譯器的指令。

在C#2.0中,#program支援兩個選項。一個是warning,它用于啟用或禁用某個具體的編譯器警告。對于的命名如下:

#program warning disable warnings //禁用警告

#program warning restore warnings

<b> </b>

其中,warnings是一個逗号分隔的警告編号清單。例如:

#program warning disable 168 //禁用168号警告

另一個選項是checksum。它用于為ASP.NET項目生成校驗和。其基本形式如下:

#program checksum "filename""{GUID}""check-sum"

其中,filename是檔案名,GUID是與檔案名相關的全局唯一辨別符,check-sum是一個包含校驗和的十六進制數。該字元串必須包含偶數個數字。

繼續閱讀