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

        }
    }
}

  

posted on 2013-11-18 15:26  wp456  阅读(248)  评论(0)    收藏  举报

导航