背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-58420.html    注册17xie 一起来写书 实现您的出书梦想!

2.12  使用注释

本节的内容表面上看起来很简单——给代码添加注释。

2.12.1  源文件中的内部注释

在本章开头提到过,C#使用传统的C风格注释方式:单行注释使用// ...,多行注释使用   /* ... */

// This is a single-line comment

/* This comment

  spans multiple lines */

单行注释中的任何内容,即//后面的内容都会被编译器忽略。多行注释中/* */之间的所有内容也会被忽略。显然不能在多行注释中包含*/组合,因为这会被当作注释的结尾。

实际上,可以把多行注释放在一行代码中:

Console.WriteLine(/*Here's a comment! */ "This will compile");

像这样的内联注释在使用时应小心,因为它们会使代码难以理解。但这样的注释在调试时是非常有用的,例如,在运行代码时要临时使用另一个值:

DoSomething(Width, /*Height*/ 100);

当然,字符串字面值中的注释字符会按照一般的字符来处理:

string s = "/* This is just a normal string */";

2.12.2  XML文档说明

如前所述,除了C风格的注释外,C#还有一个非常好的功能,本章将讨论这一功能。根据特定的注释自动创建XML格式的文档说明。这些注释都是单行注释,但都以3个斜杠(///)开头,而不是通常的两个斜杠。在这些注释中,可以把包含类型和类型成员的文档说明的XML标识符放在代码中。

编译器可以识别表2-10中所示的标识符。

  2-10

   

   

<c>

把行中的文本标记为代码,例如<c>int i = 10;</c>

<code>

把多行标记为代码

<example>

标记为一个代码示例

<exception>

说明一个异常类(编译器要验证其语法)

<include>

包含其他文档说明文件的注释(编译器要验证其语法)

<list>

把列表插入到文档说明中

<param>

标记方法的参数(编译器要验证其语法)

<paramref>

表示一个单词是方法的参数(编译器要验证其语法)

<permission>

说明对成员的访问(编译器要验证其语法)

<remarks>

给成员添加描述

<returns>

说明方法的返回值

<see>

提供对另一个参数的交叉引用(编译器要验证其语法)

<seealso>

提供描述中的“参见”部分(编译器要验证其语法)

<summary>

提供类型或成员的简短小结

<value>

描述属性

 

要了解它们的工作方式,可以在上一节的MathLibrary.cs文件中添加一些XML注释,并称之为Math.cs。我们给类及其Add方法添加一个<summary>注释,也给Add方法添加一个<returns>元素和两个<param>元素:

// Math.cs

namespace Wrox.ProCSharp.Basics

{

 

   ///<summary>

   ///   Wrox.ProCSharp.Basics.Math class.

   ///   Provides a method to add two integers.

   ///</summary>

   public class Math

   {

      ///<summary>

      ///   The Add method allows us to add two integers

      ///</summary>

      ///<returns>Result of the addition (int)</returns>

      ///<param FTEL="x">First number to add</param>

      ///<param FTEL="y">Second number to add</param>

      public int Add(int x, int y)

      {

         return x + y;

      }

   }

}

C#编译器可以把XML元素从特定的注释中提取出来,并使用它们生成一个XML文件。要让编译器为程序集生成XML文档说明,需在编译时指定/doc选项,其后需跟上要创建的文件名:

csc /t:library /doc:Math.xml Math.cs

如果XML注释没有生成格式正确的XML文档,编译器就生成一个错误。

上面的代码会生成一个XML文件Math.xml,如下所示。

<?xml version="1.0"?>

<doc>

   <assembly>

      <name>Math</name>

   </assembly>

   <members>

      <member FTEL="T:Wrox.ProCSharp.Basics.Math">

         <summary>

            Wrox.ProCSharp.Basics.Math class.

            Provides a method to add two integers.

         </summary>

      </member>

      <member FTEL=

            "M:Wrox.ProCSharp.Basics.Math.Add(System.Int32,System.Int32)">

         <summary>

            The Add method allows us to add two integers

         </summary>

         <returns>Result of the addition (int)</returns>

         <param FTEL="x">First number to add</param>

         <param FTEL="y">Second number to add</param>

      </member>

   </members>

</doc>

注意,编译器为我们做了一些工作——它创建了一个<assembly>元素,并为该文件中的每个类型或类型成员添加一个<member>元素。每个<member>元素都有一个name特性,其中包含成员的全名,前面有一个字母表示其类型:"T:"表示这是一个类型,"F:" 表示这是一个字段,"M:" 表示这是一个成员。


字数:4474    最后更新:7个月以前 [04-10 20:58]happyskynet 修改
本页编辑者:happyskynet  
[前一页]:2.15 小结  [后一页]:2.13 C#预处理器指令
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号