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

第一重姿势:打包注释

我看一些人在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. 详解python函数的参数

    详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...

  2. 从0开始学Git——Git的协同操作

    环境: test_git 目录下有个my-project 版本库 所有命令都在test_git目录下执行 本地协同操作 从远端仓库检出代码,或者克隆一个已有的版本库 拷贝一个已有的仓库 #格式: gi ...

  3. CSS布局:元素水平垂直居中

    CSS布局:元素水平垂直居中 本文将依次介绍在不同条件下实现水平垂直居中的多种方法 水平垂直居中是在写网页时经常会用到的需求,在上两篇博客中,分别介绍了水平居中和垂直居中的方法.本文的水平垂直居中就是 ...

  4. unity游戏开发_对象池

    现在假设游戏中我们需要实现一个这样功能,按下鼠标左键,发射一颗子弹,3秒之后消失.在这个功能中,我们发射了上百上千发子弹,就需要实例化生成上百上千次.这时候,我们就需要使用对象池这个概念,每次实例化生 ...

  5. JS实现停留几秒sleep,Js中for循环的阻塞机制,setTimeout延迟执行

    //第一种,使用while循环 function sleep(delay) { var start = (new Date()).getTime(); while((new Date()).getTi ...

  6. 在.net core web 项目中使用Nlog记录日志

    第1步,添加NLog.Web.AspNetCore包引用 方法1 在项目上右击“依赖项”---“管理Nuget程序包(N)…”,然后在浏览对话框中输入“NLog.Web.AspNetCore”查找包, ...

  7. 独家解读 etcd 3.4版本 |云原生生态周报 Vol. 18

    作者 | 酒祝.墨封.宇慕.衷源 关注"阿里巴巴云原生"公众号,回复关键词 "资料" ,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最 ...

  8. HelloDjango 第 13 篇:分类、归档和标签页

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 侧边栏已经正确地显示了最新文章列表.归档.分类.标签等信息.现在来完善归档.分类和标签 ...

  9. library not found for -ljpush-ios-3.2.1错误

    很多人在更新pod后报 library not found for -ljpush-ios-3.2.1(举例)错误,这其实是包含版本号类型错误. 究其原因:使用了版本号做库名字,pod升级后 Podf ...

  10. flex布局 一侧固定宽度 一侧自适应

    想实现一个类似知乎个人主页的资料显示布局 类是下面这样 其中显示图片在一个div,Name和class和button在一个div中,使用justify-content: space-between; ...