vs加调试代码的正确姿势
为了方便,我们会在系统中加入一些调试代码,比如自动登录,这样会省掉很多精力时间,但用的姿势不对,
第一重姿势:打包注释
我看一些人在vs中加调试代码(比如自动登录),然后打包的时候注释掉,这样操作是省时了。但要时刻记得去掉代码,否则可能会出大事。
//注释代码,正式发布时去掉 string UserName = "administrator"; string Password = "123"; AutoLogin(UserName, Password);
第二重姿势:用#if预处理器指令
当C# 编译器遇到 #if 指令,最终是 #endif 指令,则仅当定义指定的符号时,它才编译这些指令之间的代码。所以可以用debug符号来区分当前编译系统是发布还是调试
#if DEBUG string UserName = "administrator"; string Password = "123"; AutoLogin(UserName, Password); #endif
第三重姿势:自定义#if预处理器指令符号
以上面的预处理指定,可以满足加入调试代码,且不影响正式发布的系统版本。但有人可能生成正式安装包也是debug模式。这样的做法我们暂时不评价。遇到这样的情况的时候,我们就不能用第二重姿势了。这时候我们可以自定义指定符号。
1、首先我们点击解决方案配置,在下拉框中选择“配置管理器”
2、在弹出的配置管理器窗口的活动解决方案配置下选择新建项
3、在弹出的新建解决方案配置窗口的名称中输入你的名称,我们要复制debug的配置,所以从此处复制配置我们选择debug,创建新的项目配置打钩,点击确定
这时候我们可以在解决方案配置中看到我们新建的解决方案配置了
4、选择我们新建的解决方案配置,右键启动项目,选择属性,在弹出的窗口中选择生成项,在常规项下的条件编译符号中输入我们自定义的条件编译符号(注意:不同的条件编译符号以冒号隔开),下图中的LocalTest就是我们新增的符号。
5、我们此时即可用我们定义的条件编译符号来区分调试与生成了。
#if LocalTest string UserName = "administrator"; string Password = "123"; AutoLogin(UserName, Password); #endif
上面说的虽然很基础,但也很重要。聪明的工作方式能提高工作效率,大家平时如果有一些经验总结,也可以在评论里提出来,谢谢!