- C#實踐教程(第2版)
- 李乃文
- 902字
- 2021-03-19 18:15:37
2.10 預處理命令
C#中有著預編譯指令,支持條件編譯、警告、錯誤報告和編譯行控制等。可用的預處理指令如下所示。
□ #define symbol
□ #undef symbol
□ #if symbol [operator symbol2]
□ #else
□ #elif symbol [operator symbol2]
□ #endif
□ #warning text text指在編譯器中輸出的警告文字
□ #error text text指在編譯器中輸出的錯誤信息
□ #line number [file]
1. #region和#endregion
上述預處理指令中,最為常用的是#region和#endregion指令。這兩個指令的組合,可以把一段代碼標記為給定名稱的一個塊。將塊所實現的功能寫在#region行中,即為該塊的名稱。
如定義一個函數,接收一個字符串類型參數,用于輸出傳入的參數值。創建控制臺應用程序,如練習2-7所示。
【練習2-7】
定義一個方法,使用#region和#endregion指令將其包含在內。在#region指令后的同一行,寫下對方法的解釋“輸出字符串”,如圖2-8所示。寫好后,#region指令左側有“-”標記,單擊該標記,如圖2-9所示。該方法被顯示為一個矩形框,顯示該方法的解釋。

圖2-8 寫入#region指令

圖2-9 #region指令效果
如圖2-9所示,該方法以一種更直觀的方式顯示給開發人員。當項目中程序較多時,通過這種方式,可以使程序清晰可觀,方便閱讀。
2. #define和#undef
#define類似于聲明一個變量,但是這個變量沒有真正的值,只是存在而已。代碼沒有任何的意義僅僅是在編譯器編譯代碼的時候存在。
#undef相反,刪除符號定義。如果這個符號不存在,這句話就沒有任何意義,如果這個符號存在,#define也不起作用。
注意
聲明的時候需要在第一行代碼處聲明且不需要分號結尾,不能放在代碼的中間!
3. #if、#elif、#else、#endif
這些指令告訴編譯器是否需要編譯某個代碼塊,在#if后面寫語句塊執行的條件,而在#if與#endif中間,寫該條件下執行的語句塊。其格式如下所示:
#if 執行條件 該條件下執行的語句塊 #endif
#elif與#if和#else嵌套使用,增加語句塊執行的條件。它們必須以#endif來結尾。其語法如下:
#if 執行條件1 該條件下執行的語句塊 #elif執行條件2(在不滿足執行條件1的情況下) 執行語句塊 #else 執行語句塊 #endif
4. #warning 和#error
當編譯器遇見#warning和#error的時候分別產生警告和錯誤,以及給用戶顯示#warning后面的文本信息,并且繼續進行;如果編譯器遇見#error指令,就會輸出用戶自定義的錯誤消息,作為一個編譯錯誤信息,然后立即退出編譯,不會生成代碼。
5. #pragma
#pragma指令可以抑制或者是恢復指定的編譯警告。和命令行選項不同,#pragma指令可以在類或者方法上執行,對抑制警告的內容和抑制的時間進行更加精細的控制。
- Web程序設計及應用
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- LabVIEW Graphical Programming Cookbook
- Java完全自學教程
- Python 深度學習
- 青少年美育趣味課堂:XMind思維導圖制作
- Magento 2 Development Cookbook
- Vue.js 3.0源碼解析(微課視頻版)
- 編寫高質量代碼:改善C程序代碼的125個建議
- Python Data Structures and Algorithms
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- 持續輕量級Java EE開發:編寫可測試的代碼
- Creating Data Stories with Tableau Public
- C++語言程序設計
- Web App Testing Using Knockout.JS