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

C# 語言標准--2.5.3 聲明指令

編輯:C#入門知識

聲明指令用於定義或取消定義條件編譯符號。

pp-declaration:(pp 聲明:)
whitespaceopt   #   whitespaceopt   define   whitespace   conditional-symbol   pp-new-line(空白可選   #   空白可選   define   空白   條件符號   pp 新行)
whitespaceopt   #   whitespaceopt   undef   whitespace   conditional-symbol   pp-new-line(空白可選   #   空白可選   undef   空白   條件符號   pp 新行)
pp-new-line:(pp 新行:)
whitespaceopt   single-line-commentopt   new-line(空白可選   單行注釋可選   新行)

#define 指令的處理使給定的條件編譯符號成為已定義的(從跟在指令後面的源代碼行開始)。類似地,對 #undef 指令的處理使給定的條件編譯符號成為未定義的(從跟在指令後面的源代碼行開始)。

源文件中的任何 #define#undef 指令都必須出現在源文件中第一個“標記”(第 2.4 節)的前面,否則將發生編譯時錯誤。直觀地講,#define#undef 指令必須位於源文件中所有“實代碼”的前面。

示例:

#define Enterprise



#if Professional || Enterprise



   #define Advanced



#endif



namespace Megacorp.Data



{



   #if Advanced



   class PivotTable {...}



   #endif



}

是有效的,這是因為 #define 指令位於源文件中第一個標記(namespace 關鍵字)的前面。

下面的示例產生編譯時錯誤,因為 #define 指令在實代碼後面出現:

#define A



namespace N



{



   #define B



   #if B



   class Class1 {}



   #endif



}

#define 指令可用於重復地定義一個已定義的條件編譯符號,而不必對該符號插入任何 #undef。下面的示例定義一個條件編譯符號 A,然後再次定義它。

#define A



#define A

#undef 指令可用於取消定義一個本來已經是未定義的條件編譯符號。下面的示例定義一個條件編譯符號 A,然後兩次取消定義該符號;第二個 #undef 沒有作用但仍是有效的。

#define A



#undef A



#undef A



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved