C#预处理指令的使用及理解
#define DEBUG //定义 //#undef DEBUG//销毁定义的 /* C#预处理指令 必须定义在源文件代码的开始 C#预处理指令用于版本控制,例如测试版本和正式版本的功能限制。 编译器会根据实际逻辑去编译代码。 */ namespace Frank { public class Test { #pragma warning disable 169 //禁用编译指示警告信息 int age;//编译指示警告“从不使用字段”将不会显示出来 #pragma warning restore 169//恢复编译指示警告信息 int age2;//显示出编译指示警告 public static void Main(string[] args) { #if DEBUG //判断是否存在 System.Console.WriteLine("1");//存在就会执行里面的代码 #endif //嵌套 if #if DEBUG System.Console.WriteLine("DEBUG"); #elif DEBUG2 System.Console.WriteLine("DEBUG2"); #else System.Console.WriteLine("DEBUG3"); #endif//结束语句 //支持逻辑运算符 #if DEBUG && (DEBUG2 == false) System.Console.WriteLine("123"); #endif //#error "程序错误!"//输出错误消息,不会编译为IL代码 #warning "警告!"//输出一条警告后继续编译成IL代码 //标记快,被某些编辑器识别使之更好的布局,例如VS #region #endregion //改变编译器在警告和错误信息中显示的文件名和行号信息 #line 164 "Core.cs" //#error "154sadsa";//输出错误信息,改变了实际的行号和文件 #line default //还原默认的 //#error "1231";//输出的错误和警告消息是根据行号来排序的,所以当前输出的消息在它前一个消息之前。 #if DEBUG2//为输出错误增加条件,C# if语句中将会无效。 #error "1" #endif } } }