C# 中 // 注释和 ///

原文: C# 基本语法

   菜鸟程序员

补充一下 C# 中 // 注释和 /// 注的区别:

C# 引入了新的 XML 注释,即我们在某个函数前新起一行,输入 ///,VS.Net 会自动增加 XML 格式的注释

// 不会被编译,而 /// 会被编译

所以使用 /// 会减慢编译的速度(但不会影响执行速度)

但使用 /// 会在其它的人调用你的代码时提供智能感知(通常在Form。Designer.cs 窗口会自动生成 /// 注释的程序)举个例子:

/// <summary>
/// 必需的设计器变量。  //定义属性,注意该属性为可读可写属性
/// </summary>

要注意必须有:

/// <summary>
///
/// </summary>
更多解析

  菜鸟程序员

一、C# 中 // 注释和 /// 注释的区别

/// 会被编译, // 不会

所以使用 /// 会减慢编译的速度(但不会影响执行速度)

/// 会在其它的人调用你的代码时提供智能感知

/// 也是一种注释,但是这种注释主要有两种作用:

  • 1.这些注释能够生成一个XML文件。这样呢,看起来会对程序的内容一目了然。
  • 2.以这种方式对你的类,属性,方法等等加上注释之后,当你在其他地方使用以这种方式加上的类,属性,方法等等地时候,黄色的提示框里面会把你写的注释显示出来,是你更加明白你要使用的功能的作用。
/// <summary>
///定义用户姓名属性,该属性为可读可写属性
/// </summary>

C# 编码的时候,常常涉及代码注释,常见的注释包括两类:

  • 1)单行注释。格式:// Comments
  • 2)多行注释。格式:/* Comments... */

C# 引入了新的 XML 注释,即我们在某个函数前新起一行,输入 ///,VS.Net 会自动增加XML格式的注释,这里整理一下可用的XML注释。 XML 注释分为一级注释(Primary Tags)和二级注释(Secondary Tags),前者可以单独存在,后者必须包含在一级注释内部。

I 一级注释

1. <remarks>对类型进行描述,功能类似<summary>,据说建议使用<remarks>;
2. <summary>对共有类型的类、方法、属性或字段进行注释;
3. <value>主要用于属性的注释,表示属性的制的含义,可以配合<summary>使用;
4. <param>用于对方法的参数进行说明,格式:<param name="param_name">value</param>;
5. <returns>用于定义方法的返回值,对于一个方法,输入///后,会自动添加<summary>、<param>列表和<returns>;
6. <exception>定义可能抛出的异常,格式:<exception cref="IDNotFoundException">;
7. <example>用于给出如何使用某个方法、属性或者字段的使用方法;
8. <permission>涉及方法的访问许可;
9. <seealso>用于参考某个其它的东东:),也可以通过cref设置属性;
10. <include>用于指示外部的XML注释;

II 二级注释

1. <c> or <code>主要用于加入代码段;
2. <para>的作用类似HTML中的<p>标记符,就是分段;
3. <pararef>用于引用某个参数;
4. <see>的作用类似<seealso>,可以指示其它的方法;
5. <list>用于生成一个列表;
另外,还可以自定义XML标签 

二、让C#智能注释时显示为换行

在C#智能注释时,常常希望它能在开发时显示为换行,使得提示更加友好!原来一直想怎么实现,今天偶然发现原来如此简单,只需将<para> 标记用于诸如 <summary>、<remarks> 或 <returns> 等标记内即可。

注释在开发时换行显示的办法

<para> 标记用于诸如 <summary>、<remarks> 或 <returns> 等标记内,使您得以将结构添加到文本中。 

/// <summary> 
/// 基类(第1行) 
///<para>说明:(第2行)</para> 
///<para>  封装一些常用的成员(第3行)</para> 
///<para>  前面要用全角空格才能显示出空格来(第4行)</para> 
/// </summary> 
public class MyBase 
{ 
      /// <summary> 
      /// 构造函数(第1行) 
      ///<para>说明:(第2行)</para> 
      ///<para>  初始化一些数据(第3行)</para> 
      /// </summary> 
      public MyBase() 
      { 
            // 
            //TODO: 在此处添加构造函数逻辑 
            // 
       } 
}