版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的
本节中为了演示方便,使用的代码如下:
【例 5.1】【项目:code5-001】程序的调试。
static void Main(string[] args)
{
int[] a = new int[100]; ;
int s = 0;
for (int i = 0; i < 100; i++)
a[i] = i;
for (int i = 0; i < 100; i++)
s += a[i];
Debug.Print("Print "+ s.ToString());
Debug.WriteLine("WriteLine " + s.ToString());
Console.WriteLine(s.ToString());
Console.ReadKey();
}
在C#中调试程序主要有以下方法:
1、中断
中断调试时可以方便地跟踪数据值,增加中断位置(即断点)可以在需要跟踪调试的语句处按下F9键,或者在需要中断的语句左侧用鼠标左键点击一下,此时会出现棕红色圆圈,并且代码也变成棕红色背景。例如在
a[i] = i;
这一句增加中断:
图5-1 设置断点
添加断点时,请注意鼠标点击位置。
删除断点,可以再次按下F9键,或者在棕红色圆圈上点击一下鼠标左键,此时不再显示棕红色圆圈,所在代码行背景也变回白色,就表示取消了断点。
增加或删除断点不仅仅是在编辑时有效,程序运行时也是可以操作的。
按下F5键运行时,程序将切换回C#编辑器下,在设置的断点处中断,此时,断点行的背景色为黄色,同时不可修改代码:
图5-2 程序在断点中断
此时把鼠标放到变量上,就可以很直观的看到变量的值:
图5-3 中断时查看变量值
这是第一次进入for循环,所以i的值为0。由于断点位置在循环语句内,i从0到99,所以整个运行过程将会中断100次。
然后,按下工具栏上的“逐语句”按钮(快捷键F11),程序将会执行到下一句
i++
处,当然,按下F5,程序会继续中断到
a[i] = i;
处,此时i的值也变为1。
变量即使是数组、结构、类,它的值都可以立即获得:
图5-4 查看数组变量的值
注意:关于快捷键的设置,可以点击菜单【工具】|【选项】,从弹出的【选项】窗口中,从左侧找到并点击【环境】|【键盘】进入快捷键设置:其它快捷键可以从“显示命令包含”项中找到需要修改快捷键的命令,然后进行更改:
图5-5 更改快捷键
2、添加监视
当程序进入中断的时候,还可以添加变量的监视。
例如,要监视s的值,鼠标右键点击s(点在左右旁边也无所谓),弹出菜单上选择“添加监视”即可:
图5-6 添加对变量的监视
此时,变量s出现在监视窗口中:
图5-7 监视窗口
为了更能说明监视的s,笔者同时增加了对i的监视,可以看到当i=7时,s=21。注意i=7时,a[7]=7,由于此时中断,还没有计算s+=a[7],所以s=0+1+2+3+4+5+6,而不是s=0+1+2+3+4+5+6+7。
图5-8 监视变量的值随程序运行而更改
3、Debug输出
在代码中使用了Debug.Print和Debug.WriteLine来实时地输出变量的值,方便查看和调试。这两个方法的用法差不多。都是将变量的值输出到【即时窗口】中:
图5-9 Debug输出变量的值
4、Console输出
在窗体编程时,也可以用Console.WriteLine方法实时地输出变量的值,功能和Debug差不多。不同的是,Console.WriteLine输出的结果是显示在【输出】窗口中。如果是控制台应用程序开发下,Console.WriteLine只会输出到控制台显示。
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录