首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

是用 #if DEBUG 还是用 if(flag) 来区分开发与产品版本,该怎么解决

2012-03-24 
是用 #if DEBUG 还是用 if(flag) 来区分开发与产品版本比如应用在开发时和产品环境分别访问的数据库是 A

是用 #if DEBUG 还是用 if(flag) 来区分开发与产品版本
比如应用在开发时和产品环境分别访问的数据库是 A 和 B

可用的办法有

1:预编译的方式
#if DEBUG
  string constr = "point to A db";
#else
  string constr = "point to B db";
#endif

优点:不会提示重复定义变量,生成代码是优化的
缺点:当要连到产品数据库调试时,不好办了,DEBUG 又想用 RELEASE 的代码

2: 标识
  string constr;
if(flag)
  constr = "point to A db";
else
  constr = "point to B db";

优点:想怎么调试都行,改下 flag 就换了
缺点:判断逻辑会生成到目标代码中,变量要在判断外预先声明

基于对产品环境问题的重现,我想颠覆一下原来的想法,改为用 flag 来区分的方式。

[解决办法]
我一般用来#if DEBUG 来编写一些检查输入参数是否合法。

免得团队里面随便调用,导致程序错误。

测试完成,发布的话,当然就不需要它们了。#if DEBUG里面的代码不被编译进dll。
[解决办法]
#if DEBUG
建议用。
[解决办法]
可以这样:

C# code
#if POINT_TO_A_DB  string constr = "point to A db";#else  string constr = "point to B db";#endif
[解决办法]
只是数据库连接字符串这类用户环境的玩意儿,根本没必要区分...不知道有种东东叫配置文件吗?
[解决办法]
探讨
只是数据库连接字符串这类用户环境的玩意儿,根本没必要区分...不知道有种东东叫配置文件吗?

热点排行