为了方便,我们会在系统中加入一些调试代码,比如自动登录,这样会省掉很多精力时间,但用的姿势不对,

第一重姿势:打包注释

我看一些人在vs中加调试代码(比如自动登录),然后打包的时候注释掉,这样操作是省时了。但要时刻记得去掉代码,否则可能会出大事。

            //注释代码,正式发布时去掉
string UserName = "administrator";
string Password = "";
AutoLogin(UserName, Password);

第二重姿势:用#if预处理器指令

当C# 编译器遇到 #if 指令,最终是 #endif 指令,则仅当定义指定的符号时,它才编译这些指令之间的代码。所以可以用debug符号来区分当前编译系统是发布还是调试

#if DEBUG

            string UserName = "administrator";
string Password = "";
AutoLogin(UserName, Password);
#endif

第三重姿势:自定义#if预处理器指令符号

以上面的预处理指定,可以满足加入调试代码,且不影响正式发布的系统版本。但有人可能生成正式安装包也是debug模式。这样的做法我们暂时不评价。遇到这样的情况的时候,我们就不能用第二重姿势了。这时候我们可以自定义指定符号。

1、首先我们点击解决方案配置,在下拉框中选择“配置管理器”

2、在弹出的配置管理器窗口的活动解决方案配置下选择新建项

3、在弹出的新建解决方案配置窗口的名称中输入你的名称,我们要复制debug的配置,所以从此处复制配置我们选择debug,创建新的项目配置打钩,点击确定

这时候我们可以在解决方案配置中看到我们新建的解决方案配置了

4、选择我们新建的解决方案配置,右键启动项目,选择属性,在弹出的窗口中选择生成项,在常规项下的条件编译符号中输入我们自定义的条件编译符号(注意:不同的条件编译符号以冒号隔开),下图中的LocalTest就是我们新增的符号。

5、我们此时即可用我们定义的条件编译符号来区分调试与生成了。

#if LocalTest

            string UserName = "administrator";
string Password = "";
AutoLogin(UserName, Password);
#endif

上面说的虽然很基础,但也很重要。聪明的工作方式能提高工作效率,大家平时如果有一些经验总结,也可以在评论里提出来,谢谢!

vs加调试代码的正确姿势的更多相关文章

  1. unity-Profiler调试Android的正确姿势(mumu模拟器)

    1. 前置条件 安卓的相关环境 java.ant.sdk.ndk 什么的都装好(其实这里只需要 sdk 里面的 adb),配好 adb 工具的环境变量(意思就是 cmd 里直接输 adb 命令即可) ...

  2. 合并Spark社区代码的正确姿势

    原创文章,转载请保留出处 最近刚刚忙完Spark 2.2.0的性能测试及Bug修复,社区又要发布2.1.2了,国庆期间刚好有空,过了一遍2.1.2的相关JIRA,发现有不少重要修复2.2.0也能用上, ...

  3. 【Git】Git提交代码的正确姿势

    按此步骤基本没问题,中间有conflict,需要手动解决. 1.git stash 2.git pull 3.git stash pop 4.git add --xxx 5.git commit -m ...

  4. Git提交代码的正确姿势

    按此步骤基本没问题,中间有conflict,需要手动解决. 1.git stash 2.git pull 3.git stash pop 4.git add --xxx 5.git commit -m ...

  5. vs调试代码 提示 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。

    未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序. 1.调试-选项-项目和解决方案-web项目-勾选对网站和项目使用iis express 64 ...

  6. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  7. 用 JavaScript 刷 LeetCode 的正确姿势【进阶】

    之前写了篇文章 用JavaScript刷LeetCode的正确姿势,简单总结一些用 JavaScript 刷力扣的基本调试技巧.最近又刷了点题,总结了些数据结构和算法,希望能对各为 JSer 刷题提供 ...

  8. 未能加载文件或程序集“WcfService”或它的某一个依赖项。试图加载格式不正确的程序。

    “/”应用程序中的服务器错误. 未能加载文件或程序集“WcfService”或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息, ...

  9. ios监听ScrollView/TableView滚动的正确姿势

    主要介绍 监测tableView垂直滚动的舒畅姿势 监测scrollView/collectionView横向滚动的正确姿势 1.监测tableView垂直滚动的舒畅姿势 通常我们用KVO或者在scr ...

随机推荐

  1. JDK1.6 对 synchronized 的锁优化

    1. 背景 在 JDK 1.6 中对锁的实现引入了大量的优化. 目的 减少锁操作的开销. 2. 锁优化 在看下面的内容之间,希望大家对 Mark Word 有个大体的理解.Java 中一个对象在堆中的 ...

  2. ASP.NET Core on K8S深入学习(7)Dashboard知多少

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在第二篇<部署过程解析与Dashboard>中介绍了如何部署Das ...

  3. lua&C#学习整理

    1.Lua中有8个基本类型分别为:nil.boolean.number.string.userdata.function.thread和table. 2.pairs 和 ipairs区别 pairs: ...

  4. Delphi - Indy TIdFTPServer封装类

    在Delphi 7开发下有强大的Indy控件,版本为9,要实现一个FTP服务器,参考自带的例子,发现还要写很多函数,而且不支持中文显示文件列表等等. 于是,自己改进封装了下,形成一个TFTPServe ...

  5. javascript 基础知识汇总(一)

    1.<script> 标签 1) 可以通过<script> 标签将javaScript 代码添加到页面中 (type 和language 属性不是必须的) 2)外部的脚本可以通 ...

  6. 第6章 面向对象的程序设计 6.1 javascript对象

    ECMA-262 把对象定义为: “无序属性的集合, 其属性可以包含基本值. 对象或者函数. ” 严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到 ...

  7. HDU-3478Catch二分图的否命题

    HDU-3478Catch 题意:考虑Thief能否: 由于我推着推着就想到必须要三点可以互通,和二分图的结论正好相反,所以就试了一发, 真没想到thief的初始位置是不用考虑的. 下面是ac代码: ...

  8. 天梯杯 L2-003. 月饼

    L2-003. 月饼 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不 ...

  9. Covered Points Count CF1000C 思维 前缀和 贪心

     Covered Points Count time limit per test 3 seconds memory limit per test 256 megabytes input standa ...

  10. Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置

    一.写在前面 从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 requests 到 lxml,从 Django 到 Flas ...