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