程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#的條件編譯指令

C#的條件編譯指令

編輯:關於C#

條件編譯指令有以下四種:

●#if

●#elfi

●#else

●#endif

這些條件編譯指令用來有條件地將部分程序段包括進來或排除在外。它們和C#中的if語句有類似的作用。你可以在指令中使用邏輯操作符與(&&),或(||)和取反操作符(!)等。它們在程序中的出現的先後順序必須是這樣:

一條#if語句(必須有)

零或多條#elif語句

零或一條#else語句

一條#endif語句(必須有)

下面我們通過一些例子來說明它們的用法。

#define Debug
class Class1
{
#if Debug
void Trace(string s){}
}
再比如:

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

不難看出,它實際編譯的效果等同於:

class C
{
void I(){}
}
在這個例子裡,請大家注意#elif指令的使用,它的含義是:“else if”,使用#elif可以在#if指令中加入一個或多個分支。

#if指令可以嵌套使用,例如:

#define Debug  //Debugging on

#undef Trace  //Tracing off

class Purchase Transaction
{
  void Commit(){
    #if Debug
      CheckConsistency();
      #if Trace
          WriteToLog(this.ToString());
      #endif
    #enfif
    CommitHelper();
  }
}

預處理指令如果出現在其它輸出輸出元素中間就不會被執行。例如下面的程序試圖在定義了Debug時顯示hello world,否則顯示hello everyone,但結果卻令人哭笑不得:

程序清單8-6:

using System;
class Hello
{
 static void Main(){
    System.Console.WriteLine(@"hello,
 #if Debug
     world
 #else
     everyone
 #endif
     ");
 }
}
該程序輸出結果如下:

hello,
#if Debug
  world
#else
  everyone
#endif
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved