一. 什麼是Doxygen?
Doxygen 是一個程序的文件產生工具,可將程序中的特定批注轉換成為說明文件。通常我們在寫程序時,或多或少都會寫上批注,但是對於其它人而言,要直接探索程序裡的批注,與打撈鐵達尼號同樣的辛苦。大部分有用的批注都是屬於針對函式,類別等等的說明。所以,如果能依據程序本身的結構,將批注經過處理重新整理成為一個純粹的參考手冊,對於後面利用您的程序代碼的人而言將會減少許多的負擔。不過,反過來說,整理文件的工作對於您來說,就是沉重的負擔。
Doxygen 就是在您寫批注時,稍微按照一些它所制訂的規則。接著,他就可以幫您產生出漂亮的文檔了。
因此,Doxygen 的使用可分為兩大部分。首先是特定格式的批注撰寫,第二便是利用Doxygen的工具來產生文檔。
二. 下載地址
doxygen-1.8.4-setup.exe
http://jaist.dl.sourceforge.net/project/doxygen/rel-1.8.4/doxygen-1.8.4-setup.exe
graphviz-2.30.1.msi(不是必需)如果需要使用更強大的功能比如類繼承體系圖等則需要安裝此軟件配置使用
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.30.1.msi
三. C#注釋
<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>
四. 配置
Step 1:是Doxygen的工作目錄,請指定一個已存在的非中文的文件夾
主界面如下圖:
Step 2:具體配置
Wizard選項卡
Project
Mode
Output
將With search function的鉤去掉
Diagrams
(Use built-in class diagram generator)將使用內置的生成功能生成每個類的類圖,只有一個類是不為生成的。
如果需要更加大的功能比如類繼承體系圖請選擇第三項(Use dot tool from the GraphViz package)需要安GraphViz。
Export選項卡
Project
OUTPUT_LANGUAGE選擇chinese
TAB_SIZE是Tab的長度
Build
默認是會生成public方法,這裡也選擇EXTRACT_ALL。它保證輸出所有public方法及project方法,EXTRACT_STATIC是生成靜態方法。
Input
Input為輸入目錄,支持多個目錄,我們可以放入項目目錄和include目錄,下面的Exclude是忽略目錄與文件,可自行添加。
Index
選擇ALPHABETICAL_INDEX,類中將有一個組合類型索引項。
生成的索引
程序代碼
配置文件下載地址