做了这么多年的C#开发,针对它的完整注释都没有好好的了解过,有点悲哀啊~
下面是转载的C# 注释及说明文章
为了使用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;
}
}