您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)C#中預(yù)編譯指令怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
1.#define和#undef
用法:
#define DEBUG
#undef DEBUG
#define告訴編譯器,我定義了一個(gè)DEBUG的一個(gè)符號(hào),他類似一個(gè)變量,但是它沒有具體的值,可以將它看為一個(gè)符號(hào)而已。#undef就是刪除這個(gè)符號(hào)的定義。如果符號(hào)DEBUG沒定義過,則#undef不起作用,否則#define不起作用。二者都必須放在源代碼之前。二者的順序看代碼的順序:
#define DEBUG
#undef DEBUG
這樣的話,DEBUG是沒有定義的,如果二者換個(gè)順序,編譯器就認(rèn)為DEBUG被定義了
2.#if、#elif、#else、#endif
這個(gè)告訴編譯器進(jìn)行編譯代碼的流程控制??紤]下面代碼:
#if DEBUG Console.Write("debug"); #elif RELEASE Console.Write("realse"); #else Console.Write("other"); #endif |
以上代碼就是說如果定義了DEBUG則輸出debug,定義了RELEASE,則輸出realse,否則輸出other。如果定義了DEBUG和REALSE會(huì)怎么樣呢?各位可以自己試一下。
3.#warning、#error
通過這兩個(gè)指定可以告訴編譯器,出一個(gè)警告還是錯(cuò)誤信息。除了錯(cuò)誤信息以后,編譯將停止。
參考下面的代碼:
#if DEBUG ------〉該DEBUG如果選中當(dāng)前狀態(tài)為DEBUG,則這個(gè)默認(rèn)為#define #warning “現(xiàn)在是Ddbug狀態(tài)” #elif RELEASE ------〉如果選中release狀態(tài)的話,這個(gè)確沒有默認(rèn),不知道我試驗(yàn)的對(duì)不對(duì) #warning “現(xiàn)在是Realse狀態(tài)” #else #error“并清楚什么狀態(tài)” #endif |
4.#region 和#endregion
這個(gè)兩個(gè)用來組成代碼塊
5.#line (這個(gè)指定的使用不太明白,參考MSDN)
這個(gè)指令可以改jian變編譯器在警告和錯(cuò)誤信息中顯示的文件名和行號(hào)信息,用#line default把行號(hào)恢復(fù)為默認(rèn)的行號(hào)。
下面的示例說明如何報(bào)告與行號(hào)關(guān)聯(lián)的兩個(gè)警告。#line 200 指令迫使行號(hào)為 200(盡管默認(rèn)值為 #7)。另一行 (#9) 作為默認(rèn) #line 指令 的結(jié)果跟在通常序列后。
示例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:
下面的示例說明調(diào)試器如何忽略代碼中的隱藏行。運(yùn)行此示例時(shí),它將顯示三行文本。但是,當(dāng)設(shè)置如示例所示的斷點(diǎn)并按 F10 鍵逐句通過代碼時(shí),您將看到調(diào)試器忽略了隱藏行。另請(qǐng)注意,即使在隱藏行上設(shè)置斷點(diǎn),調(diào)試器仍會(huì)忽略它。
// 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."); } } |
關(guān)于“C#中預(yù)編譯指令怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。