鍍金池/ 教程/ C#/ 預(yù)處理指令
循環(huán)
正則表達(dá)式
概述
委托
多態(tài)性
字符串
繼承
結(jié)構(gòu)體
集合
變量
不安全代碼
判斷
反射
異常處理
可空類型
方法
數(shù)據(jù)類型
命名空間
文件 I/O
類型轉(zhuǎn)換
屬性
程序結(jié)構(gòu)
事件
接口
預(yù)處理指令
運(yùn)算符
多線程
匿名方法
索引器
泛型
封裝
常量和文字
基本語(yǔ)法
特性
數(shù)組
環(huán)境配置
運(yùn)算符重載
枚舉

預(yù)處理指令

預(yù)處理指令是一種給編譯器的指令,用來(lái)在實(shí)際的編譯開(kāi)始之前預(yù)處理一些信息。

所有的預(yù)處理指令都以 # 開(kāi)始,并且在一行預(yù)處理指令中,只有空白字符可以出現(xiàn)在指令之前。預(yù)處理指令沒(méi)有聲明,所以他們不需要以分號(hào)(;)結(jié)尾。

C# 編譯器不具有獨(dú)立的預(yù)處理機(jī)制;然而,指令執(zhí)行的時(shí)候就像是只有這一條一樣。在 C# 中,預(yù)處理指令被用來(lái)幫助條件編譯。不像 C 或 C++ 的指令,他們不能創(chuàng)建宏。一個(gè)預(yù)處理指令必須是這一行代碼中的唯一的指令。

C# 中的預(yù)處理指令

下面的表格中列出了 C# 中可用的預(yù)處理指令:

預(yù)處理指令 描述
#define 定義了一串字符,稱為符號(hào)。
#undef 可以取消定義的符號(hào)。
#if 測(cè)試一個(gè)或多個(gè)表達(dá)式的結(jié)果是否為真。
#else 用于創(chuàng)建復(fù)合條件指令,和 #if 一起使用。
#elif 用于創(chuàng)建復(fù)合條件指令。
#endif 指出條件指令的結(jié)尾。
#line 可以修改編譯器的行號(hào),選擇性修改輸出錯(cuò)誤和警告的文件名
#error 從代碼的特定位置生成誤差
#warning 從代碼的特定位置生成一級(jí)預(yù)警
#region 當(dāng)你使用 Visual Studio 代碼編譯器時(shí),你可以展開(kāi)或折疊一部分代碼塊
#engregion 它標(biāo)志著 #region 塊的結(jié)束

define 指令

#define預(yù)處理指令是用來(lái)創(chuàng)建符號(hào)常量的。

應(yīng)用 #define 可以定義一個(gè)符號(hào),這個(gè)符號(hào)會(huì)作為一個(gè)表達(dá)式傳遞給 #if 指令,這個(gè)判斷會(huì)得到 ture 的 結(jié)果。語(yǔ)法如下:

    #define symbol

下面的程序說(shuō)明了這一點(diǎn):

    #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();
            }
        }
    }

編譯執(zhí)行上述代碼,得到如下結(jié)果:

    PI is defined

條件指令

你可以使用 #if 指令創(chuàng)建一個(gè)條件指令。條件指令可以用來(lái)判斷一個(gè)或多個(gè)符號(hào)是否為真。如果他們的結(jié)果為真,編譯器就會(huì)執(zhí)行 #if 和下一條指令間的所有代碼。

條件指令的語(yǔ)法如下:

    #if symbol [operator symbol]...

當(dāng)你想測(cè)試的符號(hào)是 “symbol”這個(gè)名字的時(shí)候。你也可以使用 ture 和 false 或者提前使用反運(yùn)算符操作這個(gè)符號(hào)。

operator symbol(運(yùn)算符符號(hào))是一種用于符號(hào)求值的運(yùn)算符。運(yùn)算符可以是下列之一:

  • == (相等)
  • != (不相等)
  • && (與)
  • || (或)

你也可以通過(guò)括號(hào)使用組符號(hào)和組運(yùn)算符。條件指令用于編譯代碼生成 debug 或者是編譯特定配置時(shí)。一個(gè)條件指令以 #if 開(kāi)頭并且必須明確的以 #endif 指令結(jié)束。

下面的程序示范了條件指令的使用方法:

    #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();
        }
    }

編譯執(zhí)行上述代碼,得到如下結(jié)果:

    DEBUG and VC_V10 are defined
上一篇:環(huán)境配置下一篇:可空類型