条件编译符号( 转载)

可能针对不同的产品(或不同的平台),项目中的某些代码会不相同,那要怎样来生成不同的版本呢,如果针对每个版本保存一份源代码,浪费空间不说,上面我们新建的解决方案配置也没多大用处了。有人会说,出现这种情况表明重构的时候到了,这也是一个解决办法,不过有时候不同版本就一两句话的差别,怕是没必要,而且有的地方重构的思想会跟整个解决方案的思想相违背。还有一种办法就是使用编译器指令来生成不同版本。主要是使用#if
以及 #else#elif#endif这几个指令。如:

#if DEBUG

Console.WriteLine("Debug version");

#endif

为了能形象区分我们的版本,很多时候我们需要自定义添加编译符号(上例中的“DEBUG”就是条件编译符号)。条件编译符号的设置位置是:项目属性》生成》条件编译符号

如果我们把条件编译符号设为:“AAA”,则上例可以写为

#if AAA

Console.WriteLine("Debug version");//在控制台中换行输出

#endif

这样,我们就可以用编译器指令来让不同的解决方案配置编译不同的代码块了

如果我们把条件编译符号设为:“KennyDEBUG”,则上例可以写为

#if
KennyDEBUG
           
Response.Write("Debug version");//在控制台中换行输出

#else

Response.Write("test");        
//是向aspx页面上写东西 
#endif

《==========================================》

其实就是预编译和不同版本的区别

条件编译符号( 转载),码迷,mamicode.com

时间: 2024-11-25 10:07:22

条件编译符号( 转载)的相关文章

c#编程中创建全局#define - 条件编译符号

项目-属性-生成-条件编译符号 而不必每次都在类前面#define了. c#编程中创建全局#define - 条件编译符号,布布扣,bubuko.com

当前不会命中断点 还没有为该文档加载任何符号 (转载)

VS2010,我改了下文红色部分就可以了,以下为转载内容: 相信很多人在网页编程时都遇到过这个问题,就是设置断点时给出提示,之后不能选中.我今天也碰到这个问题了,足足折磨了我一天.设置是debug没错,我也没有找到“C/C++->常规->调试信息格式”这个东东,估计是C++里的设置,我用的是C#.”将”要求源文件与原始版本完全匹配”的勾取消“我也试了还是不行,webconfig里的debug设置也是true.折腾了一天才发现,我要调试的文本所处的文件夹里还有一个webconfig,这里的deb

c#条件编译符号

调试状态下会进yx条件

C#-#define条件编译

C#的预处理器指令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#define.#undef.#if,#elif,#else和#endif等等,下面介绍C#中使用#define进行条件编译的实例. C#中条件编译指令用于按条件包含或排除源文件中的某些部分.在Visual Studio中,会看到被排除的代码显示为灰色. 一.#define可以用来做什么 1.当计划发布两个版本的代码的时候.即基本版和拥有更多版本的企业版,就可以用到条件编译指令: 2.例如同一个文

C# 条件编译备忘

第一步:配置管理器中新建解决方案配置 第二步:定义条件编译符号: 第三步:在代码中使用自定义的条件编译 #if CustomDebugConsole.WriteLine("dsads");#endif

条件编译解决AutoCAD多版本问题

条件编译的原理是满足[条件编译符号](见下图)时代码才有用,这帮我们CAD二次开发人解决一个很大的难题,我们可以只用维护一套代码就可以了,避免多套代码管理起来混乱 我采用的是:一套代码文件加若干project框架来实现,打个简单的比喻,project框架相当于是一个酒瓶子,而代码则是其中的酒,瓶子可以有不同的外形(.net版本.cad版本),也可以贴不同的标签(相当于引用文件),但不管怎么弄,里面的酒(代码,采用[从主程序中链接的方式,见后面的图片])都还是酒…… 示例解决方案 http://p

用代码控制网络断开与重连

看到这个标题,如果你想说谁会这么蛋疼,有网不好好上,那么说明你还是一个纯洁的少年.自动重拨的需求所在多有,主要是为了绕过各大网站对相同IP地址的重复请求次数限制等等.具体的我不说了,说多了说我教坏小孩子.我最近研究这个只是因为我想写个软件自动播放和下载某个网站的视频,but这个网站一天只让同个IP免费看五个视频,我又抠不愿意花钱,但是又特别想多看多载几部.什么,你要我把网站地址告诉你?还是算了吧,传播XX(se)OO(qing)是违法的知道不. 按惯例,先声明:技术知识浩瀚无垠,笔者但求浅尝辄止

C#特性的简单介绍

特性应该我们大多接触过,比喻经常使用的[Obsolete],[Serializable]等下面我就主要介绍一个特性的一些用法 摘自MSDN定义:用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.  意思就是把我们自定义的特性或者微软自带的特性和我们的代码进行组合,其实就是为我们某些代码附加一些信息 1:先看.Net带的三种特性 1.1:[Obsolete]这个预定义特性标记了不应被使用的程序实体 参数 message,是一个字符串,描述项目过时原因以及特带的项目. 参数 erro

关于C++代码中的#pragma预处理指令

预处理指令是指在编译器编译代码时,提供按条件跳过源文件中的代码段(节).报告错误(错误信息以及行号)和警告条件,以及描绘源代码的不同区域的能力. 总是占用源代码中的单独一行,并且总是以 # 字符和预处理指令名称开头.# 字符的前面以及 # 字符与指令名称之间可以出现空白符. 下面是可用的预处理指令: #define 和 #undef,分别用于定义和取消定义条件编译符号. #if.#elif.#else 和 #endif,用于按条件跳过源代码中的节. #line,用于控制行号(在发布错误和警告信息