IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    c#条件编译

    天下发表于 2019-06-26 10:03:00
    love 0
     Conditional compilation symbols
    编译器命令行选项(例如,/define:DEBUG),
        可以在VS2008的IDE进行设置, Project Property--->Build--->Conditional compilation symbols(如果多个科研使用逗号隔开)
        系统默认设置了:DEBUG 和 TRACE
    操作系统外壳程序中的环境变量(例如,set DEBUG=1)。
    源代码中的杂注(例如,用于定义编译变量的 #define DEBUG,以及用于取消定义它的 #undef DEBUG)。
         必须在file的最前方设置,#define debug或者组合操作
        #if (Debug && Trace)
            #define DebugAndTrace 
        #endif
    ps:Conditional位于using System.Diagnostics;
    什么情况下使用该标识符?
    当程序中一个方法或属性不想再使用时,如果把它删掉就需要把引用的地方一个一个全部删掉不然就会编译错误,这时我们就可以在塔的上面加一个[Conditional("string")] 然后程序运行时就会忽略它
    ps:[Conditional("string")]里面字符串随意取  
    如果想再次调用那个方法或属性怎么办?
    这个很简单,你只需在引用命名空间那个地方进行一个宏定义把你在[Conditional("string")]里面的字符串定义出来就能用了
    C#-#define条件编译
    C#的预处理器指令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#define、#undef、#if,#elif,#else和#endif等等,下面介绍C#中使用#define进行条件编译的实例。
    C#中条件编译指令用于按条件包含或排除源文件中的某些部分。在Visual Studio中,会看到被排除的代码显示为灰色。
    一、#define可以用来做什么
    1、当计划发布两个版本的代码的时候。即基本版和拥有更多版本的企业版,就可以用到条件编译指令;
    2、例如同一个文件给silverlight、wpf、winform等使用,并且还考虑Debug和Release等,有大部分代码是一样的;
    3、指定函数和属性是否编译到最终产品中去。
    二、#define用法
    语法:#define 名称
    注意:这里名称取Debug,你也可以取其他名称如Dragon
    1 #define Debug
    说明:
    1、Debug可以看做是声明的一个变量,但此变量没有真正的值,存在时#if Debug结果为true,否则为false;
    2、#define单独用没什么意义,一般是和#if或者Conditional特性结合使用;
    3、#define必须定义在所有using命名空间前面;
    4、Debug与DEBUG是不同的,C#区分大小写
     


    天下 2019-06-26 18:03 发表评论


沪ICP备19023445号-2号
友情链接