最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#.NET學習筆記5 C#中的條件編譯

 更新時間:2012年11月01日 21:41:40   作者:  
條件編譯是C#比Java多出的東西,但我跟前輩請教后,他們都說條件編譯在實際的項目開發(fā)中不怎么使用.鑒于是新內(nèi)容,我還是做做筆記,理解一下好了
條件編譯是C#比Java多出的東西,但我跟前輩請教后,他們都說條件編譯在實際的項目開發(fā)中不怎么使用.鑒于是新內(nèi)容,我還是做做筆記,理解一下好了.
  條件編譯屬于編譯預(yù)處理的范疇,它能讓我們通過條件編譯的機制,將部分代碼包括進來或者排除出去,其作用與if-else類似.
條件編譯指令有以下四種􀁺 #if􀁺 #elif􀁺 #else􀁺 #endif  條件編譯指令有以下四種
    #if
    #elif
      #else
    #endif
  下面我們通一些例子來說明它們的用法
復(fù)制代碼 代碼如下:

#define Debug
  class Class1
 {
      #if Debug
      void Trace(string s) {}
      #endif
 }

執(zhí)行時由于第一行已經(jīng)使用#define 指令定義了符號Debug, #if 的條件滿足,所以這段代碼等同于
復(fù)制代碼 代碼如下:

class Class1
{
   void Trace(string s) {}
}

再比如:  
復(fù)制代碼 代碼如下:

#define A
   #define B
   #undef C
   class D
  {
      #if C
         void F() {}
             #elif A && B
                void I() {}
      #else
         void G() {}
      #endif
  }

其編譯效果等同于:
復(fù)制代碼 代碼如下:

class C
{
   void I() {}
}

#if 指令可以嵌套使用, 例如:
復(fù)制代碼 代碼如下:

#define Debug // Debugging on
   #undef Trace // Tracing off
   class PurchaseTransaction
  {
      void Commit()
    {
      #if Debug
          CheckConsistency();
          #if Trace
            WriteToLog(this.ToString());
          #endif
      #endif
      CommitHelper();
     }
  }

預(yù)編譯和條件編譯指令還可以幫助我們在程序執(zhí)行過程中發(fā)出編譯的錯誤或警告,相應(yīng)的指令是#warning 和#error,下面的程序展示了它們的用法:
復(fù)制代碼 代碼如下:

#define DEBUG
   #define RELEASE
   #define DEMO VERSION
     #if DEMO VERSION && !DEBUG
        #warning you are building a demo version
     #endif
     #if DEBUG && DEMO VERSION
       #error you cannot build a debug demo version
     #endif
   using System;
   class Demo
  {
     public static void Main()
    {
      Console.WriteLine(“Demo application”);
    }
  }

作者:notifier

相關(guān)文章

最新評論

竹北市| 平山县| 镶黄旗| 乌兰县| 宣城市| 江油市| 雷波县| 都匀市| 叙永县| 洪湖市| 滁州市| 通化县| 连南| 阿尔山市| 田东县| 渑池县| 望奎县| 寿阳县| 临夏县| 乃东县| 乐清市| 江都市| 炉霍县| 浦东新区| 甘肃省| 江川县| 桐庐县| 天全县| 阳西县| 泽普县| 绍兴市| 丹寨县| 吴桥县| 保康县| 昭觉县| 怀仁县| 瑞安市| 奉新县| 江孜县| 吴桥县| 四平市|