代码改变世界

C# 注释说明

2011-11-24 00:42  Andrew.Wangxu  阅读(1671)  评论(2编辑  收藏  举报

为了使用C#提供的XML注释功能,你的注释应该使用特殊的注释语法(///)开头。在///之后,你可以使用预先定义的标签注释你的代码,也可以插入你自己定义的标签。你定制的标签将会在随后加入到生成的注释文档中。

预定义的标签            用处

<c> 将说明中的文本标记为代码

<code> 提供了一种将多行指示为代码的方法

<example> 指定使用方法或其他库成员的示例

<exception> 允许你指定可能发生的异常类

<include> 允许你引用描述源代码中类型和成员的另一文件中的注释, 使用 XML XPath 语法来描述你的源代码中的类型和成员。

<list> XML注释文档中插入一个列表

<para> XML注释文档中插入一个段落

<param> 描述一个参数

<paramref> 提供了一种指示一个词为参数的方法

<permission> 允许你将成员的访问许可加入到文档中

<remarks> 用于添加有关某个类型的信息

<returns> 描述返回值

<see> 指定链接

<seealso> 指定希望在请参见一节中出现的文本

<summary> 类型或类型成员的通用描述

<value> 描述属性

 

 

=============================================================


<Summary>
 对整体进行概要性描述

<summary>Description</summary>
类、属性(不推荐)、方法等

 

<para> 跟在Summary之后,对方法所涉及的入口参数进行有效的解释
<param name=username>本参数是用户的帐号</param>
方法的入口参数;

 

<returns> 对方法的返回值进行解释;
<returns>返回值零代表操作成功,-1代表操作不成功</returns>
方法的返回值;

 

<remarks> 对一些语句进行备注性描述
<remarks>本类需要调用另外一个User类相关方法</remarks>
类、方法、属性等;

 

<see> 在生成的文档中产生一个连接到其它描述的超链接;
<see cref=”[member]”/>
可以在其它注释标识符中加入

 

<seealso> 与上者的区别是本标识符显示超链接在一个文档的尾部的“See Also”区域,而前者在文档之中;
<seealso cref=”[member]”/>
不可以在其它注释标识符中加入

 

<value> 对一个属性进行概要性解释;
<value>这是一个public属性</value>
属性

 

<code> 如果需要置入一部分源代码段,可以使用本标识符将其标记出来
<code>
public int add(int a,b)
{return a+b;
}
</code>
可以在其它注释标识符中加入

 

<exception> 对程序中可能抛出的异常做解释;
<exception cref=”System.Exception”>抛出的异常情况</exception>
在方法当中如果有抛出异常,如“try…catch结构”时可以使用本标识符做解释

 

<permission> 对方法的访问权限做一些解释:
<permission cref=”System.Security.PermissionSet”>这是公共方法</permission>
方法,属性

 

<c> 与<code>标识符基本相同,但本标识符仅用于单行代码;
<c>return a+b;</c>
可以在其它标识符中插入使用;

 

<example> 举例说明,通常与<code>配套使用;
<example> 以下示例说明如何调用Add方法:
<code>
class MyClass
{
  public static int Main()
{
return Add(1+2);
}
}
</code>
</example>
可以在其它标识符中插入;

 

<paramref> 在其它地方引用一个入口参数
<paramref cref=”a”>请注意,这是一个整型参数</paramref>
 

 

=============================================================

例:
using System;

/// <summary>
/// ClassName:SomeClass
/// Version:1.0
/// Date:2001/6/21
/// Author:cniter
/// </summary>
/// <remarks>
/// 本类仅是一个示例教学类,不完成具体的工作
/// </remarks>
public class SomeClass
{
     /// <summary>
     /// 内部私有变量,存储名称</summary>
    private string myName = null;

     public SomeClass()
     {
         //
         // TODO: Add Constructor Logic here
         //
     }
   
    /// <summary>
    /// 名称属性 </summary>
    /// <value>
    ///本属性为只读属性,返回用户名</value>
    public string Name
    {
       get
       {
          if ( myName == null )
          {
             throw new Exception("Name is null");
          }
             
          return myName;
       }
    }

    /// <summary>
    /// 本方法是没有进行具体构建</summary>
    /// <param name="s"> 入口参数S是一个String类型</param>
    /// <seealso cref="String">
    ///String类型的信息</seealso>
    public void SomeMethod(string s)
    {
    }

    /// <summary>
    /// 本方法仍然没有进行具体构建</summary>
    /// <returns>
    /// 返回值始终为0.</returns>
    /// <seealso cref="SomeMethod(string)">
    /// 参看SomeMethod(string)方法的说明 </seealso>
    public int SomeOtherMethod()
    {
       return 0;
    }

    /// <summary>
     /// 该应用程序的入口
    /// </summary>
    /// <param name="args"> 入口参数集合</param>
     public static int Main(String[] args)
     {
         //
         // TODO: Add code to start application here
         //

         return 0;
     }
}

 

参考:http://www.wxzzz.com/?id=21