C#編譯宏
C#的預處理機制
預處理過程掃描原始碼,對其進行初步的轉換,產生新的原始碼提供給編譯器。可見預處理過程先於編譯器對原始碼進行處理。
預處理指令是以#號開頭的程式碼行。#號必須是該行除了任何空白字元外的第一個字元。#後是指令關鍵字,在關鍵字和#號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對原始碼做某些轉換。下面是部分預處理指令:
前處理器指令 | 描述 |
---|---|
#define | 它用於定義一系列成為符號的字元。 |
#undef | 它用於取消定義符號。 |
#if | 它用於測試符號是否為真。 |
#else | 它用於建立複合條件指令,與 #if 一起使用。 |
#elif | 它用於建立複合條件指令。 |
#endif | 指定一個條件指令的結束。 |
#line | 它可以讓您修改編譯器的行數以及(可選地)輸出錯誤和警告的檔名。 |
#error | 它允許從程式碼的指定位置生成一個錯誤。 |
#warning | 它允許從程式碼的指定位置生成一級警告。 |
#region | 它可以讓您在使用 Visual Studio Code Editor 的大綱特性時,指定一個可展開或摺疊的程式碼塊。 |
#endregion | 它標識著 #region 塊的結束。 |
示例
#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
}