Conditional compilation symbols
編譯器命令行選項(例如,/define:DEBUG),
可以在VS2008的IDE進行設(shè)置, Project Property--->Build--->Conditional compilation symbols(如果多個科研使用逗號隔開)
系統(tǒng)默認設(shè)置了:DEBUG 和 TRACE
操作系統(tǒng)外殼程序中的環(huán)境變量(例如,set DEBUG=1)。
源代碼中的雜注(例如,用于定義編譯變量的 #define DEBUG,以及用于取消定義它的 #undef DEBUG)。
必須在file的最前方設(shè)置,#define debug或者組合操作
#if (Debug && Trace)
#define DebugAndTrace
#endif
ps:Conditional位于using System.Diagnostics;
什么情況下使用該標識符?
當程序中一個方法或?qū)傩圆幌朐偈褂脮r,如果把它刪掉就需要把引用的地方一個一個全部刪掉不然就會編譯錯誤,這時我們就可以在塔的上面加一個[Conditional("string")] 然后程序運行時就會忽略它
ps:[Conditional("string")]里面字符串隨意取
如果想再次調(diào)用那個方法或?qū)傩栽趺崔k?
這個很簡單,你只需在引用命名空間那個地方進行一個宏定義把你在[Conditional("string")]里面的字符串定義出來就能用了
C#-#define條件編譯
C#的預(yù)處理器指令從來不會轉(zhuǎn)化為可執(zhí)行代碼的命令,但是會影響編譯過程的各個方面,常用的預(yù)處理器指令有#define、#undef、#if,#elif,#else和#endif等等,下面介紹C#中使用#define進行條件編譯的實例。
C#中條件編譯指令用于按條件包含或排除源文件中的某些部分。在Visual Studio中,會看到被排除的代碼顯示為灰色。
一、#define可以用來做什么
1、當計劃發(fā)布兩個版本的代碼的時候。即基本版和擁有更多版本的企業(yè)版,就可以用到條件編譯指令;
2、例如同一個文件給silverlight、wpf、winform等使用,并且還考慮Debug和Release等,有大部分代碼是一樣的;
3、指定函數(shù)和屬性是否編譯到最終產(chǎn)品中去。
二、#define用法
語法:#define 名稱
注意:這里名稱取Debug,你也可以取其他名稱如Dragon
1 #define Debug
說明:
1、Debug可以看做是聲明的一個變量,但此變量沒有真正的值,存在時#if Debug結(jié)果為true,否則為false;
2、#define單獨用沒什么意義,一般是和#if或者Conditional特性結(jié)合使用;
3、#define必須定義在所有using命名空間前面;
4、Debug與DEBUG是不同的,C#區(qū)分大小寫