成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#必備知識之預編譯指令

開發 后端
預編譯一般用來防止頭文件的重復包含和編譯,而預編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。本文中就C#中相關的預編譯指令進行了簡單介紹。

預編譯又稱為預處理,是做些代碼文本的替換工作。處理#開頭的指令,比如拷貝#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如果選中當前狀態為DEBUG,則這個默認為#define
   #warning “現在是Ddbug狀態”
#elif RELEASE                 ------〉如果選中release狀態的話,這個確沒有默認,不知道我試驗的對不對
    #warning “現在是Realse狀態”
#else
    #error“并清楚什么狀態”
#endif

4.#region 和#endregion

這個兩個用來組成代碼塊

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

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

下面的示例說明如何報告與行號關聯的兩個警告。#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:

下面的示例說明調試器如何忽略代碼中的隱藏行。運行此示例時,它將顯示三行文本。但是,當設置如示例所示的斷點并按 F10 鍵逐句通過代碼時,您將看到調試器忽略了隱藏行。另請注意,即使在隱藏行上設置斷點,調試器仍會忽略它。

// preprocessor_linehidden.cs
using System;
class MyClass 
{
   public static void Main() 
   {
      Console.WriteLine("Normal line #1.");   // Set a break point here.
      #line hidden
      Console.WriteLine("Hidden line.");
      #line default
      Console.WriteLine("Normal line #2.");
   }
}

【編輯推薦】

  1. C#高級編程 多種方式讀寫文本文件
  2. 利用C#創建和調用DLL詳解
  3. C#的XML編程詳解
責任編輯:楊鵬飛 來源: 51CTO整理
相關推薦

2009-08-14 00:30:09

C#條件編譯指令

2024-06-06 12:24:18

預編譯代碼編譯

2011-06-14 14:32:46

性能優化

2009-07-30 18:20:21

C#繼承

2009-08-25 17:59:49

C#入門

2009-08-10 17:12:54

C#編譯器

2009-08-13 17:36:54

編譯C#代碼

2009-08-31 18:24:26

編譯C#文件

2009-08-27 16:29:18

C#動態編譯

2009-08-07 17:32:17

C#編譯程序

2009-08-13 16:13:03

C#基礎知識

2009-08-13 12:50:45

C#基礎知識

2009-08-27 16:37:06

C#基礎知識

2009-08-28 10:22:47

C# DLLImpor

2009-08-21 08:41:44

C#反射

2009-09-17 09:20:45

C#操作XML

2011-07-06 10:47:52

C#using

2009-08-25 16:32:24

C#語言

2021-03-15 08:18:23

C#反射模塊

2009-08-06 14:59:36

C#編譯器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美一区二区三区国产精品 | 超碰在线免费 | 国产羞羞视频在线观看 | 香蕉久久a毛片 | 免费人成在线观看网站 | 国产高清无av久久 | 一区二区三区四区视频 | 亚洲精品一 | 91在线观看 | 狠狠视频 | 欧美极品少妇xxxxⅹ免费视频 | 一区二区在线免费观看 | 中文字幕国产第一页 | 人操人免费视频 | 特级毛片 | 久久久网 | a毛片视频网站 | 欧美日韩在线免费观看 | 黄色大片视频 | av中文字幕在线播放 | 久久久久久国产 | 亚洲第一中文字幕 | 一区二区三区av夏目彩春 | 亚洲国产精品视频 | 久久久久久久夜 | 久久午夜精品 | 成年人在线观看视频 | 夏同学福利网 | 91精品国产麻豆 | h视频在线播放 | 91精品国产91 | 久久久久久久亚洲精品 | 国产欧美三区 | 久久国产精品99久久久久久丝袜 | 国产一区二区三区四区在线观看 | 久久久一区二区三区四区 | 久久精品视频一区二区 | 久久99视频这里只有精品 | 中文字幕一区二区三区在线观看 | 国产精品99久久免费观看 | 99久久国产综合精品麻豆 |