位置:首頁 > 高級語言 > C#教學 > C#預處理指令

C#預處理指令

預處理器指令編譯器預處理指令在給定的信息實際編譯開始之前。

所有的預處理指令以#開頭,隻使用空白字符在同一行上的預處理器指令之前出現。預處理器指令都冇有聲明,所以他們不以分號(;)結束。

C#編譯器不具有獨立的預處理;然而,該指令進行處理,就好像有一個。在C#預處理器指令用於在條件編譯幫助。不像C和C++指令,它們不是用來創建宏。預處理指令必須在一行中隻有唯一指令。

預處理器指令在C#列表

下表列出了C#中可用的預處理指令:

預處理指令 描述
#define 它定義了字符序列,稱為符號
#undef 它可以取消定義的符號
#if 它允許測試符號或符號來看看計算結果是否為true。
#else 它允許創建複合條件指令,使用#if
#elif 它允許創建複合條件指令
#endif 指定一個條件指令的末端
#line 它可以讓修改編譯器的行號和(可選)的文件名輸出錯誤和警告
#error 它允許在代碼生成從一個特定的位置的誤差
#warning 它允許產生從一個特定的位置一級預警在代碼中
#region 它可以讓你指定使用Visual Studio代碼編輯器的概述功能時展開或折疊代碼塊
#endregion 它標誌著#region 塊的結束

 #define 預處理

#define預處理指令創建符號常量。

#定義允許定義一個符號,例如,通過使用符號傳遞給 #if 指令的表達,表達將計算結果為true。它的語法如下:

#define symbol

下麵的程序說明了這一點:

#define PI 
using System;
namespace PreprocessorDAppl
{
   class Program
   {
      static void Main(string[] args)
      {
         #if (PI)
            Console.WriteLine("PI is defined");
         #else
            Console.WriteLine("PI is not defined");
         #endif
         Console.ReadKey();
      }
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

PI is defined

有條件的指令

可以使用#if指令來創建一個條件指令。有條件的指令是用於測試的象征或符號,看看計算結果為true。如果計算結果為true,編譯器評估計算 #if 和下一個指令之間的所有代碼。

有條件指令的語法是:

#if symbol [operator symbol]...

其中,符號是要測試的符號的名稱。還可以使用真假或預先準備使用反運算符號。

操作符是用於評價計算該符號的運算符。運算符可以是以下幾點:

  • == (相等)

  • != (不相等)

  • && (與)

  • || (或)

也使用可以組符號和運算符括號。有條件的指令用於編譯代碼的調試版本或編譯的特定配置時。有條件指令與#if指令開頭必須明確使用#endif指令終止。

下麵的程序演示了如何使用條件指令:

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {

      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG is defined");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 is defined");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG and VC_V10 are defined");
      #else
         Console.WriteLine("DEBUG and VC_V10 are not defined");
      #endif
      Console.ReadKey();
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

DEBUG and VC_V10 are defined