文章目录
预处理指令
预处理指令可以用于干预编译,可实现部分编译(条件编译),使用场景如下:
- 部分编译:可将后台功能部分编译,使编译结果不包含调试功能。
- 选择编译:根据运行环境选择编译该平台适用的代码。
- 调试编译:使部分代码在调试阶段编译。
所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。
常用指令
定义符号#define、#undef
#define 允许您定义一个符号,这样,通过使用符号作为传递给 #if 指令的表达式,表达式将返回 true。它的语法如下:
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI is defined"); #else Console.WriteLine("PI is not defined"); #endif Console.ReadKey(); } } }
条件指令#if、#else、#elif、#endif
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 is defined"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG and VC_V10 are defined"); #else Console.WriteLine("DEBUG and VC_V10 are not defined"); #endif Console.ReadKey(); } }
折叠代码#region、#endregion
在#region和#endregion中间的代码可以折叠起来。