C#实践教程(第2版)
上QQ阅读APP看书,第一时间看更新

2.9 注释与调试

程序人员开发出来的程序,在某个类方法中包含几十行甚至几百行的代码,开发人员本人也不能很好地记忆这些代码的用途。因此在C#中允许有注释语句。注释语句可写在程序中间,但不会被编译,只供开发人员或维护人员理解程序。

另外,程序是需要调试的,之前运行程序所使用的F5键即是程序调试的方法之一,但程序量较大时,代码所存在的问题可能不止一处,在VS中提供了多种调试方法,以便更好地找到代码错误所在。

本节详细介绍在VS中,代码注释的多种方式,以及程序调试的多种技术。

2.9.1 注释

注释是对程序的解释。一个项目往往需要很多的程序和代码,而开发人员本人对已经写过的程序也未必能够很好记忆。注释是穿插在程序中的语句,该语句不会被系统编译,仅供开发人员和维护人员阅读程序时使用。

在VS 2012中,由按钮和按钮来控制程序中的注释。对程序写注释,可以在程序上方或该条语句后插入,之后选中注释语句,单击按钮将选中的语句标记为注释。被标记为注释的语句显示为绿色。而按钮用来注销被选中的注释。

在编写程序时,有时需要将写过的程序标记为注释语句,以判断程序中的错误。因此可以使用按钮进行标记,并在确认程序错误之后,使用按钮解除该标记。正确的程序注释一般包括序言性注释和功能性注释。它们的具体说明如下:

序言性注释 其主要内容包括模块的接口、数据的描述和模块的功能。

功能性注释 其主要内容包括程序段的功能、语句的功能和数据的状态。

在C#中,程序的注释主要包括单行注释、多行注释、块注释和折叠注释。它们的具体说明如下:

单行注释 其表示方法是//说明文字,这种注释方法从//开始到行尾的内容都会被编辑器所忽略。

多行注释 其表示方法是/* 说明文字 */,这种注释方法在/*和*/之间的所有内容都会被忽略。

块注释 使用///表示块注释,块注释也可以看作是说明注释,这种注释可以自动生成相关的说明文档。

折叠注释 它可以将代码折叠,折叠注释以#region开始,所在行后面的文字是注释文字,以#endregion结束,而其他的#region和#endregion之内的行代码是有效的,折叠注释仅仅起到了折叠的作用。

在程序中,为了描述一段程序的作用,通常将变量和程序的作用一一写出。在C#中,通常将一个功能写在一个方法中,方法是包含参数、返回值和语句块的整体。参数是方法所实现的功能中需要用到的数据。

对一个方法的注释,只需在方法定义语句的上方输入3个“/”符号,按Enter键,VS中将自动显示该方法中的参数,以供用户编写注释。

如现有一个方法,名称为Show,用来输出一个字符串。该方法有一个字符串类型的参数massage,表示该方法所需要输出的字符串,则方法的声明如下所示:

public void Show(string massage){};

为该方法编写语句块,并在其上方输入3个“/”符号,按Enter键,其效果如下所示:

/// <summary>
/// 输出字符串
/// </summary>
/// <param name="massage">输出内容</param>
public void Show(string massage)
{
   Console.WriteLine(massage);
}

上述代码中,系统自动生成了方法上方的语句,其中,在/// <summary>与/// </summary>之间,写入对方法功能的描述,而在<param name="massage">与</param>之间,写入对massage这个参数的描述,如上所示。

2.9.2 调试技巧

在VS中编写完程序,可按F5键来尝试运行,并查看运行结果。但是在VS中,运行的机制不止如此。表2-16列举了常用调试运行的快捷键及其使用方法。

表2-16 调试快捷键及其使用方法

在程序中可以设置断点,断点的作用是中断程序的运行。按F5键运行后,执行到被设置断点的位置将会中断,接着按F11键可将剩下的语句逐条执行,每按1次F11键执行一条语句;而此时按F5键,可继续执行到下个断点。

在程序中可设置多个断点,断点的作用是审查程序的错误,可逐条语句或逐个过程进行执行,根据执行效果来判断程序的准确性。断点的设置方法是在语句的最左侧单击鼠标左键,如现有程序语句如下所示:

Console.WriteLine("第1条输出");
Console.WriteLine("第2条输出");
Console.WriteLine("第3条输出");

在第2条语句前添加断点,如图2-7所示。第2条语句前有了红色的实心圆点,即为断点的标记。运行该程序,其效果如图2-7所示。运行中只有第1条语句被执行,界面中有执行的相关数据。此时按F5键将输出全部3条语句,而按F11键则执行第2条语句。

图2-7 断点的使用