在 C# 程式當中,使用 ///
開頭的註解和標籤 (Tag),會被編譯器編譯成 XML 格式文件。被編譯成 XML 格式文件後,除了可以產生 API 文件,Visual Studio 和 Visual Studio Code 的 IntelliSense 功能也能預覽這些註解,讓其他人在開發時,也能快速的理解類別、類別成員的用途。
在 Visual Studio 和 Visual Studio Code 中,只要在類別名稱上一行、類別成員上一行輸入 ///
,就會自動產生 <summary>
標籤 (如果類別成員已經有參數、回傳值,那麼會自動補上 <param>
和 <returns>
標籤)。可以在標籤內輸入關於此類別、類別成員的描述。
除了 <summary>
以外,常見的註解標籤有幾個,列表如下:
<param name="name">
: 用來描述這個參數的作用。如果類別成員沒有這個參數,會提示錯誤。<returns>
: 描述回傳的值。<remarks>
: 常用來補充 <summary>
的額外說明。此外還有更多的標籤可以使用,請參閱 Documentation comments - document APIs using /// comments - Microsoft Learn。
需要換行時,則有兩個選擇: 將每行文字分別用 <para>
段落標籤包圍,或在每行文字結尾輸入 </br>
換行。(可參閱 How to add a line break in C# .NET documentation - Stack Overflow)
/// <summary> 手錶類別 </summary>
/// <remarks> 示範用類別 </remarks>
protected class Watch
{
protected int hour;
protected int minute;
/// <summary> 設定手錶的時間 </summary>
/// <param name="h"> 小時 </param>
/// <param name="m"> 分鐘 </param>
public virtual void Setup(int h, int m)
{
this.hour = h;
this.minute = m;
}
/// <summary> 顯示時間 </summary>
public void Show()
{
Console.WriteLine(hour + ":" + minute);
}
}
NOTE: 若使用 Swagger 產生 API 文件,想知道能支援的註解有哪些,以及套用後的效果,可參考 [Swagger] 一些 Swagger 編寫文件的技巧和 Client Code Gen - 余小章 @ 大內殿堂 - 點部落 這篇文章的說明。