大多数情况下,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可调出该窗口),特别是在做海量循环调试时,如果不想断点按到手发软,用这个比较省力

 

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

 

 


作者:菩提树下的杨过