程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#必備知識之預編譯指令(1)

C#必備知識之預編譯指令(1)

編輯:關於C語言

預編譯又稱為預處理,是做些代碼文本的替換工作。處理#開頭的指令,比如拷貝#include包含的文件代碼,#define宏定義的替換,條件編譯等,就是為編譯做的預備工作的階段,主要處理#開始的預編譯指令。

下面對C#中的預編譯指令進行介紹:

1.#define和#undef

用法:

#define DEBUG

#undef DEBUG

#define告訴編譯器,我定義了一個DEBUG的一個符號,他類似一個變量,但是它沒有具體的值,可以將它看為一個符號而已。#undef就是刪除這個符號的定義。如果符號DEBUG沒定義過,則#undef不起作用,否則#define不起作用。二者都必須放在源代碼之前。二者的順序看代碼的順序:

#define DEBUG

#undef DEBUG

這樣的話,DEBUG是沒有定義的,如果二者換個順序,編譯器就認為DEBUG被定義了

2.#if、#elif、#else、#endif

這個告訴編譯器進行編譯代碼的流程控制。考慮下面代碼:

#if DEBUG
  Console.Write("debug");
#elif RELEASE
  Console.Write("realse");
#else
  Console.Write("other");
#endif

以上代碼就是說如果定義了DEBUG則輸出debug,定義了RELEASE,則輸出realse,否則輸出other。如果定義了DEBUG和REALSE會怎麼樣呢?各位可以自己試一下。

3.#warning、#error

通過這兩個指定可以告訴編譯器,出一個警告還是錯誤信息。除了錯誤信息以後,編譯將停止。

參考下面的代碼:

#if DEBUG           ------〉該DEBUG如果選中當前狀態為DEBUG,則這個默認為#define
  #warning “現在是Ddbug狀態”
#elif RELEASE         ------〉如果選中release狀態的話,這個確沒有默認,不知道我試驗的對不對
  #warning “現在是Realse狀態”
#else
  #error“並清楚什麼狀態”
#endif

4.#region 和#endregion

這個兩個用來組成代碼塊

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