C#中的预处理命令

   参考文章http://hahha2003.blog.163.com/blog/static/248577920114204133758/

本篇主要学习预处理命令
     (一)基本知识
        (1)定义符号和取消符号定义的预处理指令#define 和 #undef
        (2)条件编译指令#if、#else、#endif之外,还有一个#elif.必须包括一条#endif语句
        (3)#region和#endregion 用于代码折叠,这个经常用
        (4)#warning、#error用于编译项目的时候有时就会看到错误列表窗口里列出出现的错误、警告或者消息的信息。
        (5)#line

     (二)代码演示

      

//#define DEBUG
//#undef DEBUG
//#define ISSAY
#define LEVEL1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//本篇主要学习预处理命令
//(一)基本知识
//(1)定义符号和取消符号定义的预处理指令#define 和 #undef
//(2)条件编译指令#if、#else、#endif之外,还有一个#elif.必须包括一条#endif语句
//(3)#region和#endregion 用于代码折叠,这个经常用
//(4)#warning、#error用于编译项目的时候有时就会看到错误列表窗口里列出出现的错误、警告或者消息的信息。
//(5)#line 
////(二)说明
//(1)条件编译的条件除了用#define在代码的最前端定义外,还可以在VS右键项目属性|生成|常规|条件编译符号
//   中输入自己的定义的条件编译符号
//(2)VS默认会定义两个条件编译变量"DEBUG","TRACE",你也可以通过不选中这两个条件编译符号
namespace ComditionDebugDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //GetLevel();
            DebugTest();
            Console.ReadKey();                
        }
        //用于版本控制编译.现在做项目时有些时候我们各版本之间相差不大
        //Level1版本可能是Level2版本上隐藏一部分功能,那么用条件编译编译不同的版本发布是一种不错的选择
        //该列简单模拟了这方面的作用
        private static void GetLevel()
        {
            string str = string.Empty;
            string a="a";
            string b="b";
            string c="c";
#if LEVEL1
            str = a;
            Console.WriteLine("Level1版本str是{0}",str);   
#elif LEVEL2
            str=a+c;
            Console.WriteLine("Level2版本str是{0}",str);
#elif LEVEL3
            str =a+b+c;
            Console.WriteLine("Level3版本str是{0}",str);
#endif           
            
        }
        //预处理命令还可以用于在调试的时候根据条件选择性调试代码块
        //#error,#warning可以
        //下面的列子演练这一点
        private static void DebugTest()
        {
#if DEBUG
            Console.WriteLine("debug");
#else 
             Console.WriteLine("release");
#endif
#if ISSAY
             Console.WriteLine("hello");
#else

            Console.WriteLine("you can say nothing.");
#endif
#if TRACE
            Console.WriteLine("trace");
#warning    "这里有警告"
//#error "这里有错误"
#endif
          
        }
    }
}

 

     (三)补充说明

        (1)条件编译的条件除了用#define在代码的最前端定义外,还可以在VS右键项目属性|生成|常规|条件编译符号
           中输入自己的定义的条件编译符号
        (2)VS默认会定义两个条件编译变量"DEBUG","TRACE",你也可以通过不选中这两个条件编译符号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值