程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#預處理

C#預處理

編輯:C#入門知識

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

                                                            C#預處理指令

image


 

7.2.1 #define指令
 
 
1. #define指令用於定義一個稱為符號(symbol)的字符序列。#if和#elif指令可以判斷某個符合是否已經存在,並據此控制編譯過程。#define指令的基本形式如下: 
2. 
3. #define symbol 
4. 
5. 注意,這裡沒有以分號結束,因為它不是C#的語句,而是一個預處理指令。#define和symbol之間至少要用一個空格隔開。C#該指令不同於C和C++中的#define指令(C、C++中是用來定義宏的)。 
6. 
7. 例如: 
8. 
9. #define Windows
 
7.2.2 #if、#elif、#else和#endif指令
 
#if指令的基本形式如下:
 
1. #if symbol_expression_1 
2. 
3. statement_sequence_1 
4. 
5. #elif symbol_expression_2 
6. 
7. statement_sequence_2 
8. 
9. #else 
10. 
11. statement_sequence_n 
12. 
13. #endif
 
7.2.2 #if、#elif、#else和#endif指令
 
其中,symbol_expression_i是一個symbol或多個symbol構成的邏輯表達式。如果表達式的值為真,則編譯statement_sequence_i,如果所有的symbol_expression都為假,則編譯statement_sequence_n
例 P7_5
 
7.2.3 #undef指令
 
1. #undef指令可以取消之前定義的符號,基本形式如下: 
2. 
3. #undef symbol 
4. 
5. 例如: 
6. 
7. #define SMALL 
8. 
9. //這個位置之前SMALL是被定義的 
10. 
11. 
12. #if SMALL 
13. 
14. #undef SMALL 
15. 
16. 
 
7.2.4 #error指令
 
 
 
1. #error指令主要用於調試,它可以迫使編譯器停止編譯。該指令的基本形式如下: 
2. 
3. #error error_message 
4. 
5. 其中,error_message是錯誤信息。例如: 
6. 
7. #error An error occurred here!
 
7.2.5 #warning指令 www.2cto.com
 
 
1. #warning類似於#error,不過它產生的是警告消息而不是錯誤消息。因此,編譯過程不會停止。其基本形式如下: 
2. 
3. #warning warning_message
 
7.2.6 #line指令
 
 
1. #line指令可以為它所在的文件設置行號和文件名。編譯過程中如果出現錯誤或警告就會用到這裡的行號和文件名。#line指令的基本形式為: 
2. 
3. #line number "filename" 
4. 
5. 其中,number是任意的正整數,它用作新行的行號。可選的filename表示一個任意有效的文件標識符,它被用作新的文件名。#line主要用於調試和特殊的應用程序。 
6. 
7. #line指令還有兩個選秀,一個是default,它根據原來的位置返回行號。其用法為: 
8. 
9. #line default 
10. 
11. 另一個是hidden,在逐步調試一個程序的時候,hidden選項允許編譯器跳過該指令與下一個不包含hidden選項的#line指令之間的行。其用法如下: 
12. 
13. #line hidden
 
7.2.7 #region和#endregion指令
 
 
1. #region和#endregion用於定義一個區域,該區域可以在Visual Studio IDE的大綱視圖中被擴展或收縮。其基本形式如下: 
2. 
3. #region region_name 
4. 
5. //code 
6. 
7. 
8. #endregion 
9. 
10. 其中,region_name用於指定區域的名稱
 
7.2.8 #program指令
 
#program指令是C#2.0新增的,它用於給出指令,例如為編譯器指定選項。其基本形式如下:
#program option
其中,option是傳遞給編譯器的指令。
在C#2.0中,#program支持兩個選項。一個是warning,它用於啟用或禁用某個具體的編譯器警告。對於的命名如下:
 
1. #program warning disable warnings //禁用警告 
2. 
3. 
4. #program warning restore warnings
 
7.2.8 #program指令
 
1. 其中,warnings是一個逗號分隔的警告編號列表。例如: 
2. 
3. #program warning disable 168 //禁用168號警告 
4. 
5. 
6. 另一個選項是checksum。它用於為ASP.NET項目生成校驗和。其基本形式如下: 
7. 
8. #program checksum "filename""{GUID}""check-sum" 
9. 
10. 其中,filename是文件名,GUID是與文件名相關的全局唯一標識符,check-sum是一個包含校驗和的十六進制數。該字符串必須包含偶數個數字。

 


摘自 小滿子

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved