#if、#else、#elif、#endif
这组指令主要用于在调试环境下代码进行条件编译时,用于控制编译器对某个代码段是否进行编译。
View Code
View Code
#define release using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Dynamic; using System.ComponentModel; namespace ConsoleApplication { class Program { static void Main(string[] args) { #if debug Console.WriteLine("It's debug."); #elif release Console.WriteLine("It's release."); #endif Console.ReadLine(); } } }
用CondintionalAttribute特性来代替#if/#endif程序块。
#define debug using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Dynamic; using System.ComponentModel; using System.Diagnostics; namespace ConsoleApplication { class Program { static void Main(string[] args) { ShowDebug(); Console.ReadLine(); } [Conditional("debug"), Conditional("release")] static void ShowDebug() { Console.WriteLine("It's debug or release."); } } }
#define、#undef
这两个指令分别用于定义和取消定义一个给定名词的符号,该符号可以应用#if指令作为判断条件,和其他指令搭配才有意义。
#warning、#error
#warning指令用于发出警告信息,#error指令用于发出错误信息。
View Code
#define TRACE_WARNING #define TRACE_ERROR using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Dynamic; using System.ComponentModel; using System.Diagnostics; namespace ConsoleApplication { class Program { static void Main(string[] args) { #if TRACE_WARNING #warning "别忘了还有事情没有处理。" #endif #if TRACE_ERROR #error "这里是错的,注意哦" #endif Console.WriteLine("asfsdfsdfsadf"); Console.ReadLine(); } } }