vs.net的调试小技巧之#define debug(适合新手)

大多数情况下,vs.net中我们可以用断点来解决调试问题,但有些时候也可能手动需要输出一些信息做为调试的参考,你是否有过调试完成以后,忘记删除某条输出语句的经历?

那么下面的技巧可以解决这个问题:

#define debug
using System;

namespace debugDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            #if debug
                Console.WriteLine("我是调试信息");
            #endif
            Console.WriteLine("这里是正常的功能代码...");

            Console.Read();
        }
    }
}

注意带"#的部分",这里我们在最开始定义了一个符号debug,然后用#if...#endif做了个判断,意思为:如果 debug被定义过了,则执行

Console.WriteLine("我是调试信息");

这一句,程序运行会输出:

 

我是调试信息
这里是正常的功能代码...

 

可能有人要发飙了:"切,不加这几行不也是这么输出么?"

 

关键的时候到了:程序调试通过,正式发布时,把最开始的#define debug改成#undef debug,再次运行会发现调试信息全部没了!

 

学会了吗?当然#还有其它用法,比如常见的#region ... #endregion, 更多用法,请自行参考msdn文档

 

最后再补充一个小技巧:除了用断点查看局部变量的值,还可以用System.Diagnostics.Debug.WriteLine("调试信息,比如临时变量的值");来输出结果到output窗口(Ctrol + W + O可调出该窗口),特别是在做海量循环调试时,如果不想断点按到手发软,用这个比较省力

 

后话:此乃水文,高手绕过! :)

 

 

时间: 2024-10-27 02:17:02

vs.net的调试小技巧之#define debug(适合新手)的相关文章

C++编程中的四个调试小技巧

c++|编程|技巧     1.调试标记     适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef和#endif进行管理.当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失.常用的调试标记为DEBUG, 语句序列: #define DEBUG#ifdef DEBUG调试代码#endif     2.运行期间调试标记      在程序运行期间打开和关闭调试标记.通过设置一个调试bool标记可以实现.这对命令行运行的程序更为方便.例如下面代码: #i

JavaScript 调试小技巧

'debugger;' 除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断点.你也可以在一些条件控制中插入该调试语句,譬如: if (thisThing) { debugger; } 将Objects以表格形式展示 有时候我们需要看一些复杂的对象的详细信息,最简单的方法就是用console.log然后展示成一个列表状,上下滚动进行浏览.不过似乎用console.table

模板引擎正则表达式调试小技巧

很久没有遇上PHP难题了,这次正则问题占了一点时间,还是老问题最大回溯.递归限制问题.学习透之后其实并不难修改调试有这类问题的正则.主要是以下几点. 基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制. 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了.但是因此而不去注意.不去学习,则容易书写错误并遇上问题. 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这

Android——安卓调试小技巧(一)

       在我们做完一个Activity之后,总是要看下效果才放心,但是面对虚拟器的启动慢,反应慢的两个痛点,我们总要寻找别的方法.  1,copy生成的APK文件安装                                在我们选择Run As之后,会在bin文件夹下生产一个app的apk文件,我们可以拷贝出来,在未发布到google之前,发给测试人员使用.                          或者是:               在这个apk文件上右键选择打开,之后

模板引擎正则表达式调试小技巧_php技巧

基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制. 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了.但是因此而不去注意.不去学习,则容易书写错误并遇上问题. 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了. 除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容易调试了. PHP代码 复制代码 代码如下: <?php if (is

Xcode两种调试小技巧

1."全局"断点 正常情况下如果代码有错误,会直接触发SIGXXXX信号,然后中断在main函数里. 但是我们还是不知道到底是什么引发了异常信号.我们可以在断点导航器中添加一个全局断点,一旦出现错误,会立即中断执行: 2.启用未声明selector异常 如果我们在代码中引用了一个未声明的selector,编译不会有问题;但是运行时会直接崩溃.我们可以在项目中开启未声明selector异常,在编译时就发现这个问题:

每日Ubuntu小技巧-让鼠标适合左利手用户

电脑的鼠标被设计成使用食指(大拇指旁边的那个手指)完成大部分操作.默认情况下鼠标为右利手用户配置.打开电脑时,多数情况下你会使用食指完成点击动作. 事实上,许多左利手用户(俗称左撇子)习惯把鼠标放到键盘的左边,然后用中指进行单击操作.但这并不是左利手用户使用鼠标最好的方法. 这个简短的教程为想要正确地使用左手操作鼠标的用户而编写.它将会帮助左利手用户将鼠标设置成用食指点击鼠标主键的操作模式. 这个教程同样适用于右利手用户.如果鼠标为左利手用户设置,那么右利手用户可以使用这个教程将鼠标键切换回来.

JavaScript编程的10个实用小技巧_javascript技巧

在这篇文章中,我将列出10个Javascript实用小技巧,主要面向Javascript新手和中级开发者.希望每个读者都能至少从中学到一个有用的技巧. 1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. 复制代码 代码如下: var myVar   = "3.14159",str     = ""+ m

linux下输入长文件名小技巧_unix linux

    这个小技巧其实是写给新手们的,老手们恐怕会嗤之以鼻,而且我还不能算什么老手,如此看来似乎确实有些不妥.但是又转念一想即使是新手也未必不能给新手介绍一些自己的经验.俗话说的好,愚者千虑必有一得,况且大侠们对一些小技巧早已喑熟,他们恐怕不屑写这等鸡毛蒜皮一般的小文章,可是我等广大之linux 爱好而又刚刚入门者掌握这个有用的小技巧又是十分必要,因为它们可以大大简化我们的工作量.但是这方面的小技巧又很少被人提及,至少我是费了不少气力才得到的.因为这个理由才使得我有动力来写本文. 如果你是一个没