visual studio 注釋


原文地址:https://www.cnblogs.com/zhangziqiu/archive/2009/01/23/XmlComment.html

一.摘要

    .Net允許開發人員在源代碼中插入XML注釋,這在多人協作開發的時候顯得特別有用。 C#解析器可以把代碼文件中的這些XML標記提取出來,並作進一步的處理為外部文檔。 這篇文章將展示如何使用這些XML注釋。 在項目開發中,很多人並不樂意寫繁雜的文檔。但是,開發組長希望代碼注釋盡可能詳細;項目規划人員希望代碼設計文檔盡可能詳盡;測試、檢查人員希望功能說明書盡可能詳細等等。如果這些文檔都被要求寫的話,保持它們同步比進行一個戰役還痛苦。

為何不把這些信息保存在一個地方呢??最明顯想到的地方就是代碼的注釋中;但是你很難通覽程序,並且有些需要這些文檔的人並不懂編碼。最好的辦法是通過使用XML注釋來解決這些問題。代碼注釋、用戶手冊、開發人員手冊、測試計划等很多文檔可以很方便的從XML注釋中獲得。本文講解.Net中經常使用的XML注釋.主要使用C#語言j,.Net平台支持的其他語言使用的XML注釋格式基本相同.並且在本系列文章的下一講中講解如何使用工具將XML注釋內容轉化為幫助文檔.

二.XML注釋概述

所有的XML注釋都在三個向前的斜線之后(///)。兩條斜線表示是一個注釋,編譯器將忽略后面的內容。三條斜線告訴編譯器,后面是XML注釋,需要適當地處理。

當開發人員輸入三個向前的斜線后,Microsoft Visual Studio .NET IDE 自動檢查它是否在類或者類成員的定義的前面。如果是的話,Visual Studio .NET IDE 將自動插入注釋標記,開發人員只需要增加些額外的標記和值。下面就是在成員函數前增加三個斜線,自動增加的注釋比如:

        
	/// <summary>
        /// 得到指定酒店的酒店信息
        /// </summary>
        /// <param name="hotelId">酒店Id</param>
        /// <param name="languageCode">語言碼.中文為zh-cn</param>
        /// <returns>酒店信息對象</returns>
        [OperationContract]
        OutHotelInfo GetHotelInfoByHotelId(string loginName, string loginPassword, string hotelId, string languageCode);

這里嵌入的summary,param,returns標記僅僅是Visual Studio能夠識別的一部分標記,然而在智能感知IntelliSense中,並沒有把c#規范中所有的標記列出來,遺失的部分只能用手工插入。 這些手工標記是非常有用的,如果恰當地設置他們,對導出成外部說明文件將非常有幫助。

三.將注釋生成XML文件

在代碼中添加的注釋信息, 可以單獨提取出來, 生成XML文件. 在制作最后的幫助文件的時候會使用到這些注釋XML文件.

默認情況下是不生成注釋XML文件的.每個項目可以生成一個XML文件,需要我們在項目屬性中進行設置:

如上圖所示,在項目的"屬性頁"->"生成"中, 勾選"XML文檔文件"復選框,即可在編譯時生成注釋XML文件.生成路徑默認是和dll文件在同一個文件夾下,也可以自行修改.注意此處填寫的是相對路徑.

四.常見注釋標簽列表

注釋的使用很簡單,但是我們使用到的注釋很少.這是因為大部分項目中注釋的作用僅僅是給程序員自己看.如果想要生成類似MSDN這樣的文檔,我們需要了解更多的注釋標簽.下面是我整理的常用的注釋標簽:

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-weight: bold; font-size: 10.5pt; margin: 0in; font-family: 宋體">說明</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-weight: bold; font-size: 10.5pt; margin: 0in; font-family: 宋體">語法</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-weight: bold; font-size: 10.5pt; margin: 0in; font-family: 宋體">參數</p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;summary&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;summary&gt; </span><span lang="zh-CN">標記應當用於描述類型或類型成員。使用</span><span lang="en-US"> &lt;remarks&gt; </span><span lang="zh-CN">添加針對某個類型說明的補充信息。</span></p>

      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;summary&gt; </span><span lang="zh-CN">標記的文本是唯一有關</span><span lang="en-US"> IntelliSense </span><span lang="zh-CN">中的類型的信息源,它也顯示在 對象瀏覽器 中。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">summary</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">Description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">summary</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description:</span><span lang="zh-CN">對象的摘要。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;remarks&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN" style="color: black">使用 </span><font color="#000000"><span lang="en-US" style="color: #000066">&lt;remarks&gt;</span><span lang="en-US" style="color: black"> </span><span lang="zh-CN" style="color: black">標記添加有關類型的信息,以此補充用</span><span lang="en-US" style="color: black"> &lt;summary&gt; </span><span lang="zh-CN" style="color: black">指定的信息。此信息顯示在對象瀏覽器中。</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">remarks</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">Description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">remarks</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description:</span><span lang="zh-CN">成員的說明。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;param&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;param&gt; </span><span lang="zh-CN">標記應當用於方法聲明的注釋中,以描述方法的一個參數。</span></p>

      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN">有關</span><span lang="en-US"> &lt;param&gt; </span><span lang="zh-CN">標記的文本將顯示在</span><span lang="en-US"> IntelliSense</span><span lang="zh-CN">、對象瀏覽器和代碼注釋</span><span lang="en-US"> Web </span><span lang="zh-CN">報表中。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in"><font color="#000000"><span style="color: blue; font-family: 新宋體">&lt;</span><span style="color: maroon; font-family: 新宋體">param</span><span style="font-family: verdana"> </span><span style="color: red; font-family: 新宋體">name</span><span style="color: blue; font-family: 新宋體">=</span><span style="font-family: 新宋體">'</span><span style="color: blue; font-family: 新宋體">name</span><span style="font-family: 新宋體">'</span><span style="color: blue; font-family: 新宋體">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">param</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">name:</span><span lang="zh-CN">方法參數名。將此名稱用雙引號括起來</span><span lang="en-US"> (" ")</span><span lang="zh-CN">。</span></p>

      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description:</span><span lang="zh-CN">參數說明。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;returns&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;returns&gt; </span><span lang="zh-CN">標記應當用於方法聲明的注釋,以描述返回值。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">returns</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">Description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">returns</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description:</span><span lang="zh-CN">返回值的說明。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;value&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;value&gt; </span><span lang="zh-CN">標記使您得以描述屬性所代表的值。請注意,當在</span><span lang="en-US"> Visual Studio .NET </span><span lang="zh-CN">開發環境中通過代碼向導添加屬性時,它將會為新屬性添加</span><span lang="en-US"> &lt;summary&gt; </span><span lang="zh-CN">標記。然后,應該手動添加</span><span lang="en-US"> &lt;value&gt; </span><span lang="zh-CN">標記以描述該屬性所表示的值。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">value</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">property-description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">value</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">property-description:</span><span lang="zh-CN">屬性的說明</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;example&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN">使用</span><span lang="en-US"> &lt;example&gt; </span><span lang="zh-CN">標記可以指定使用方法或其他庫成員的示例。這通常涉及使用</span><span lang="en-US"> &lt;code&gt; </span><span lang="zh-CN">標記。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">example</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">Description</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">example</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description: </span><span lang="zh-CN">代碼示例的說明。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">&lt;c&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;c&gt; </span><span lang="zh-CN">標記為您提供了一種將說明中的文本標記為代碼的方法。使用</span><span lang="en-US"> &lt;code&gt; </span><span lang="zh-CN">將多行指示為代碼。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">&lt;c&gt;</p>

      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">Text</p>

      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">&lt;/c&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10pt; margin: 0in"><span lang="en-US" style="font-family: 宋體">text </span><span lang="en-US" style="font-family: calibri">:</span><span lang="zh-CN" style="font-family: 宋體">希望將其指示為代碼的文本。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;code&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN">使用</span><span lang="en-US"> &lt;code&gt; </span><span lang="zh-CN">標記將多行指示為代碼。使用</span><span lang="en-US">&lt;c&gt;</span><span lang="zh-CN">指示應將說明中的文本標記為代碼。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">code</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">Content</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">code</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">content:</span><span lang="zh-CN">希望將其標記為代碼的文本。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;exception&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;exception&gt; </span><span lang="zh-CN">標記使您可以指定哪些異常可被引發。此標記可用在方法、屬性、事件和索引器的定義中。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">&lt;exception </p>

      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">cref="member"&gt;</p>

      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">Description</p>

      <p lang="en-US" style="font-size: 10pt; margin: 0in; font-family: 宋體">&lt;/exception&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">cref:</p>

      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN">對可從當前編譯環境中獲取的異常的引用。編譯器檢查到給定異常存在后,將</span><span lang="en-US"> member </span><span lang="zh-CN">轉換為輸出</span><span lang="en-US"> XML </span><span lang="zh-CN">中的規范化元素名。必須將</span><span lang="en-US"> member </span><span lang="zh-CN">括在雙引號</span><span lang="en-US"> (" ") </span><span lang="zh-CN">中。</span></p>

      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="zh-CN">有關如何創建對泛型類型的</span><span lang="en-US"> cref </span><span lang="zh-CN">引用的更多信息,請參見</span><span lang="en-US"> &lt;see&gt;</span></p>

      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">description:</span><span lang="zh-CN">異常的說明。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;see&gt;</p>

      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;seealso&gt;</span> </p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;see&gt; </span><span lang="zh-CN">標記使您得以從文本內指定鏈接。使用</span><span lang="en-US"> &lt;seealso&gt; </span><span lang="zh-CN">指示文本應該放在“另請參見”節中。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in"><font color="#000000"><span style="color: blue; font-family: 新宋體">&lt;</span><span style="color: maroon; font-family: 新宋體">see</span><span style="font-family: verdana"> </span><span style="color: red; font-family: 新宋體">cref</span><span style="color: blue; font-family: 新宋體">=</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">member</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">/&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="margin: 0in; font-family: 宋體"><span lang="en-US" style="font-size: 10.5pt">cref:</span></p>

      <p style="margin: 0in; font-family: 宋體"><span lang="en-US" style="font-size: 10.5pt"></span><span lang="zh-CN" style="font-size: 10pt">對可以通過當前編譯環境進行調用的成員或字段的引用。編譯器檢查給定的代碼元素是否存在,並將</span><span lang="en-US" style="font-size: 10pt"> member </span><span lang="zh-CN" style="font-size: 10pt">傳遞給輸出</span><span lang="en-US" style="font-size: 10pt"> XML </span><span lang="zh-CN" style="font-size: 10pt">中的元素名稱。應將</span><span lang="en-US" style="font-size: 10pt"> member </span><span lang="zh-CN" style="font-size: 10pt">放在雙引號</span><span lang="en-US" style="font-size: 10pt"> (" ") </span><span lang="zh-CN" style="font-size: 10pt">中。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;para&gt;</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">&lt;para&gt; </span><span lang="zh-CN">標記用於諸如</span><span lang="en-US">&lt;summary&gt;</span><span lang="zh-CN">,</span><span lang="en-US">&lt;remarks&gt; </span><span lang="zh-CN">或</span><span lang="en-US"> &lt;returns&gt; </span><span lang="zh-CN">等標記內,使您得以將結構添加到文本中。</span></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">para</span><span style="color: blue">&gt;</span>content<span style="color: blue">&lt;/</span><span style="color: maroon">para</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">content:</span><span lang="zh-CN">段落文本。</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;code&gt;*</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體">提供了一種插入代碼的方法。</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">code src=</span>"<span style="color: maroon">src</span>"<span style="color: maroon"> language=</span>"<span style="color: maroon">lan</span>"<span style="color: maroon"> encoding=</span>"<span style="color: maroon">c</span>"<span style="color: maroon">/</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">src:</span><span lang="zh-CN">代碼文件的位置</span></p>

      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">language:</span><span lang="zh-CN">代碼的計算機語言</span></p>

      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">encoding:</span><span lang="zh-CN">文件的編碼</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;img&gt;*</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體">用以在文檔中插入圖片</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in"><font color="#000000"><span style="color: blue; font-family: 新宋體">&lt;</span><span style="color: maroon; font-family: 新宋體">img</span><span style="font-family: verdana"> </span><span style="color: red; font-family: 新宋體">src</span><span style="color: blue; font-family: 新宋體">=</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">src</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">/&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">src:</span><span lang="zh-CN">圖片的位置,相對於注釋所在的</span><span lang="en-US">XML</span><span lang="zh-CN">文件</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;file&gt;*</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體">用以在文檔中插入文件,在頁面中表現為下載鏈接</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in"><font color="#000000"><span style="color: blue; font-family: 新宋體">&lt;</span><span style="color: maroon; font-family: 新宋體">file</span><span style="font-family: verdana"> </span><span style="color: red; font-family: 新宋體">src</span><span style="color: blue; font-family: 新宋體">=</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">src</span><span style="font-family: 新宋體">"</span><span style="color: blue; font-family: 新宋體">/&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體"><span lang="en-US">src:</span><span lang="zh-CN">文件的位置,相對於注釋所在的</span><span lang="en-US">XML</span><span lang="zh-CN">文件</span></p>
    </td>
  </tr>

  <tr>
    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 0.776in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="121">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 宋體">&lt;localize&gt;*</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 4.305in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid" width="262">
      <p style="font-size: 10.5pt; margin: 0in; font-family: 宋體">提供一種注釋本地化的方法,名稱與當前線程語言不同的子節點將被忽略</p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 1.461in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">localize</span><span style="color: blue">&gt;</span></font></p>

      <p style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span lang="en-US" style="color: blue">&lt;</span><span lang="en-US" style="color: maroon">zh-CHS</span><span lang="en-US" style="color: blue">&gt;</span><span lang="zh-CN" style="color: blue">中文</span><span lang="en-US" style="color: blue">&lt;/</span><span lang="en-US" style="color: maroon">zh-CHS</span><span lang="en-US" style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;</span><span style="color: maroon">en</span><span style="color: blue">&gt;</span>English<span style="color: blue">&lt;/</span><span style="color: maroon">en</span><span style="color: blue">&gt;</span></font></p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體">...</p>

      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: 新宋體"><font color="#000000"><span style="color: blue">&lt;/</span><span style="color: maroon">localize</span><span style="color: blue">&gt;</span></font></p>
    </td>

    <td style="border-right: #a3a3a3 1pt solid; padding-right: 4pt; border-top: #a3a3a3 1pt solid; padding-left: 4pt; padding-bottom: 4pt; vertical-align: top; border-left: #a3a3a3 1pt solid; width: 3.727in; padding-top: 4pt; border-bottom: #a3a3a3 1pt solid">
      <p lang="en-US" style="font-size: 10.5pt; margin: 0in; font-family: verdana">&nbsp;</p>
    </td>
  </tr>
</tbody></table>

 

五.注釋與幫助文檔

完善注釋信息的最終目的就是為了生成MSDN一樣的程序幫助文檔,此文檔將在項目整個生命周期中被各種角色使用:開發人員通過此文檔維護程序, 測試人員通過此文檔了解業務邏輯, 項目管理人員將此文檔用作項目說明等等.

所以要了解列表中這些不常見的注釋究竟有何作用,就要和最終的幫助文檔關聯起來.下面通過示例講解注釋標簽在幫助文件中的作用.有關如何生成幫助文件,將在本系列下一篇文章中講解.

先簡單看一下幫助文件的樣子.我們都看過MSDN幫助文檔,使用注釋XML文件生成的幫助文件后綴名是chm,打開后和MSDN基本一樣:

image

 

本示例的命名空間是XmlCommentClassDemo, 其中包含兩個類:

UserBL是包含方法的類.

UserInfo是一個模型類.里面只有UserId和UserName兩個屬性.

 

(1)類注釋


看一下UserBL類的注釋代碼:

    /// <summary>
    /// 用戶對象業務邏輯層.
    /// </summary>
    /// <remarks>
    /// 2009.01.01: 創建. ziqiu.zhang <br/>
    /// 2009.01.23: 增加GetUserName和GetUserId方法. ziqiu.zhang <br/> 
    /// </remarks>
    public class UserBL
    {...}

Summary標簽的內容在命名空間類列表中顯示,如上圖.remarks標簽的內容則顯示在類頁面中,如下圖:

image

對比以前的注釋規范,下面的注釋是我們規定在創建一個新的文件時需要添加到頭部的注釋:

/***************************************************************************************
 * *
 * *        File Name        : HotelCommentHeaderInfo.cs
 * *        Creator            : ziqiu.zhang
 * *        Create Time        : 2008-09-17
 * *        Functional Description  : 酒店的點評頭模型。包括酒店實體對應的點評頭,酒店的OutHotelInfo信息
 *                                    ,酒店實體的Tag信息集合。
 * *        Remark      : 
 * *
 * *  Copyright (c) eLong Corporation.  All rights reserved. 
 * ***************************************************************************************/

添加此注釋塊的目的很好.但是很難推廣.因為這段注釋並不能被編譯器識別,也無法添加到注釋XML文件中用於生成幫助文件. 格式不容易記憶,想添加的時候只能從別的復制過來后修改.公司缺少完善的Code Review機制所以最后很多文件都沒有此注釋塊.

相比較使用.NET自己的注釋語言,不僅"敏捷",而且會成為幫助文件中的描述.

(2)方法注釋

類的注釋比較簡單.為了樣式常用注釋標簽的效果, 我在方法的注釋中使用了盡可能多的注釋標簽.代碼如下:

        /// <summary>
        ///     根據用戶Id得到用戶名.
        ///     <para>
        ///         此處添加第二段Summary信息,在MSDN中很少使用.所以不推薦使用.
        ///     </para>  
        /// </summary>
        /// <remarks>
        ///     如果沒有找到用戶則返回null.<br/>
        ///     <paramref name="userId"/> 參數為正整數.<br/>
        ///     用戶Id模型屬性定義參見<see cref="UserInfo.UserId"/><br/>
        ///     相關方法:<seealso cref="UserBL.GetUserId"/>
        /// </remarks>
        /// <param name="userId">用戶Id</param>
        /// <returns>用戶真實姓名</returns>
        /// <example>
        ///     返回用戶id為100的用戶真實姓名:
        ///     <code>
        ///         private string userName = string.Empty;
        ///         userName = UserBL.GetUserName(100);
        ///     </code>
        ///     返回的用戶名可能為null,使用時要先判斷:<br/>
        ///     <c>if(userName!=null){...}</c>
        /// </example>
        /// <exception cref="System.ApplicationException">
        ///     如果用戶Id小於0則拋出此異常
        /// </exception>
        public static string GetUserName(long userId)
        {
            string result = string.Empty;
            if (userId < 0)
            {
                throw new System.ApplicationException();                
            }
            else if (userId == 0)
            {
                result = null;
            }
            else
            {
                result = "Robert";
            }
            return result;
        }

 

接下來通過圖片進行詳細講解.首先是查看類成員時的截圖:

image

點擊方法后的截圖:

image

需要注意的幾點:

1) 最開始seealso標簽添加在了remarks標簽中,所以在See Also區域沒有添加上方法的連接. 解決方法是把seealso標簽放在summary標簽中.

2) 異常類的cref屬性需要設置成編譯器可以識別的類, 這樣才可以在幫助文檔中點擊.比如上面的System.ApplicationException異常點擊后進入微軟的在線MSDN查詢.如果是自己定義的異常, 需要此異常類也在你的幫助文件中.一般提供注釋XML和依賴DLL即可.

(3) 屬性的注釋

屬性的注釋也很簡單.和類不同的地方在於屬性要使用<value>標簽而不是<remarks>進行描述:

        private string m_UserName = string.Empty;
        /// <summary>
        /// 用戶真實姓名
        /// </summary>
        /// <value>用戶真實姓名字符串.默認值為空.</value>
        public string UserName
        {
            get { return m_UserName; }
            set { m_UserName = value; }
        }

效果如圖:

image

六.總結

本文講解了.NET中的XML注釋標簽, 以及最后在幫助文檔中的作用.

了解了標簽的使用,在下篇文章中將告訴大家如何使用工具生成本文示例中的幫助文件.

標簽名稱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM