C#前置處理器指令

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

C#前置處理器指令是在編譯時間調用的。

前置處理器指令(preprocessor directive)告訴C#編譯器要編譯哪些代碼,並指出如何處理特定的錯誤和警告。

C#前置處理器指令還可以告訴C#編輯器有關程式碼群組織的資訊。

1. 定義符號和取消符號定義的預先處理指令#define 和 #undef

預先處理指令都以#號開頭並位於行首,前面可以出現空格符。

    #define DEBUG#define ISSAY

上面的語句定義了一個先行編譯的符號,他的範圍是他所處的整個檔案,定義符號的語句必須出現在所有代碼之前, 否則編譯的時候會出現一個異常: 不能在檔案的第一個標記之後,定義或取消定義前置處理器符號 。我們也可以使用#undef來取消一個符號的定義,先來看個例子。

#define DEBUG#undef DEBUG#define ISSAY using System;   namespace JustDoIt   {   class Program        {   static void Main(string[] args)            {             #if DEBUG              Console.Write("debug.");             #endif             #if ISSAY              Console.Write("hello.");         #else              Console.Write("you can say nothing.");             #endif          Console.ReadLine();            }        }   }   //輸出:hello

從上面的代碼我們可以看到第一行定義了一個符號DEBUG,緊接著第二行取消了這個符號的定義,也就是相當於沒有定義一樣,所以程式啟動並執行時候不會執行Console.Write("debug.")這個語句。第三行定義了ISSAY符號,所以程式輸出了“hello”,如果我們把他注釋了或者是刪除了,那麼程式會輸出“you can say nothing“。我們可以初步看到通過定義先行編譯的符號,可以控制編譯器選擇性地編譯代碼。上面的代碼中還有#if和#endif這樣的符號,這些是條件編譯指令。

2. 條件編譯指令

條件編譯指令有4個,除了我們從第一個樣本看到的#if、#else、#endif之外,還有一個#elif。我們對這些指令應該有是曾相識的感覺,他們跟我們平時編寫代碼的時候試用的條件陳述式是一樣的,條件陳述式是用來控製程序流的,而這些條件編譯指令是用來控制編譯器選擇性地編譯代碼的。

一條#if語句可以有0條或多條#elif語句,也可以有0條或一條#else 語句,但必須包括一條#endif語句必須有,否則會出現語法錯誤。

3. #region和#endregion

這兩個符號平時我們肯定用的很多了,就是把一些相關的程式碼摺疊功能到一起,這樣對我們在一個檔案中編寫較長的代碼非常有用,我們可以把一組相關的代碼用#region和#endregion組織在一起並且可以在#region後面加上說明的文字,當這組代碼被摺疊起來的時候,我們可以看到#region後面的解說文字。

 

  MSDN上的 C# 前置處理器指令 介紹

Visual Studio 2013

MSDN

本節包含有關以下 C# 前置處理器指令的資訊。

#if

#else

#elif

#endif

# define

#undef

#warning

#error

#line

#region

#endregion

#pragma

#pragma warning

#pragma checksum

請參見各個主題有關更多資訊和樣本。

雖然編譯器沒有單獨的前置處理器,本節中介紹的處理指示,就象一個。 它們在條件編譯用於協助。 與 C 和 C++ 指令不同,不能使用這些指令建立宏。

前置處理器指令必須是行上的唯一指令。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.