国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

C#中預編譯指令是怎樣的?

來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-04-22 14:01:16

  預編譯又稱為預處理,是做些代碼文本的替換工作。處理#開頭的指令,比如拷貝#include包含的文件代碼,#define宏定義的替換,條件編譯等,就是為編譯做的預備工作的階段,主要處理#開始的預編譯指令。

  下面對C#中的預編譯指令進行介紹:

  1、#define和#undef

  用法:

  #define DEBUG

  #undef DEBUG

  #define告訴編譯器,我定義了一個DEBUG的一個符號,他類似一個變量,但是它沒有具體的值,可以將它看為一個符號而已。#undef就是刪除這個符號的定義。如果符號DEBUG沒定義過,則#undef不起作用,否則#define不起作用。二者都必須放在源代碼之前。二者的順序看代碼的順序:

  #define DEBUG

  #undef DEBUG

  這樣的話,DEBUG是沒有定義的,如果二者換個順序,編譯器就認為DEBUG被定義了

  2、#if、#elif、#else、#endif

  這個告訴編譯器進行編譯代碼的流程控制?紤]下面代碼:

  #if DEBUG

  Console.Write("debug");

  #elif RELEASE

  Console.Write("realse");

  #else

  Console.Write("other");

  #endif

  以上代碼就是說如果定義了DEBUG則輸出debug,定義了RELEASE,則輸出realse,否則輸出other。如果定義了DEBUG和REALSE會怎么樣呢?各位可以自己試一下。

  3、#warning、#error

  通過這兩個指定可以告訴編譯器,出一個警告還是錯誤信息。除了錯誤信息以后,編譯將停止。

  參考下面的代碼:

  #if DEBUG ------〉該DEBUG如果選中當前狀態(tài)為DEBUG,則這個默認為#define

  #warning “現(xiàn)在是Ddbug狀態(tài)”

  #elif RELEASE ------〉如果選中release狀態(tài)的話,這個確沒有默認,不知道我試驗的對不對

  #warning “現(xiàn)在是Realse狀態(tài)”

  #else

  #error“并清楚什么狀態(tài)”

  #endif

  4、#region 和#endregion

  這個兩個用來組成代碼塊

  5、#line (這個指定的使用不太明白,參考MSDN)

  這個指令可以改jian變編譯器在警告和錯誤信息中顯示的文件名和行號信息,用#line default把行號恢復為默認的行號。

  下面的示例說明如何報告與行號關聯(lián)的兩個警告。#line 200 指令迫使行號為 200(盡管默認值為 #7)。另一行 (#9) 作為默認 #line 指令 的結果跟在通常序列后。

  示例1:

  // preprocessor_line.cs

  public class MyClass2

  {

  public static void Main()

  {

  #line 200

  int i; // CS0168 on line 200

  #line default

  char c; // CS0168 on line 9

  }

  }

  示例2:

上一篇:使用C#實現(xiàn)遠程啟動的原理及方法?
下一篇:C++中指針和引用有什么區(qū)別?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學校地址: 長沙市天心區(qū)團結路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權所有

湘ICP備14017520號-3

關注我們
在線咨詢
嘿,我來幫您!
富源县| 盱眙县| 叶城县| 江口县| 涟源市| 安丘市| 镇雄县| 南澳县| 东宁县| 东乡县| 准格尔旗| 遂宁市| 手游| 宁城县| 错那县| 定南县| 宜丰县| 龙川县| 长泰县| 崇文区| 湘潭市| 玛沁县| 成武县| 三河市| 榕江县| 翼城县| 揭西县| 沿河| 天柱县| 江津市| 大竹县| 英吉沙县| 开江县| 双牌县| 汉川市| 万全县| 化隆| 安福县| 彭阳县| 湄潭县| 池州市|