Документирующие комментарии используют синтаксис XML и позволяют документировать типы и их члены. Документирующий комментарий должен идти непосредственно перед объявлением типа или его члена и начинаться с трех слэшей:
1 2 | /// <summary>Cancels a running query.</summary> public void Cancel() { ... } |
Многострочный комментарий можно добавить двумя способами:
1 2 3 4 5 6 7 8 | /// <summary> /// Cancels a running query /// </summary> public void Cancel() { ... } /** <summary> Cancels a running query. </summary> */ public void Cancel() { ... } |
Обратите внимание на две звездочки в начале второго варианта.
Если при компиляции добавить параметр /doc
, то компилятор будет извлекать документирующие комментарии и сохранит их в отдельный xml файл. Это может быть полезно по двум причинам. Во-первых, если разместить эти файлы в той же директории что и скомпилированная сборка, Visual Studio сможет прочитать эти файлы и использовать их для выдачи подсказок и завершения кода. Во-вторых, с помощью сторонних средств можно преобразовать эти xml файлы в HTML документацию.
Стандартные XML тэги
<summary>...</summary>
— позволяет задать текст всплывающих подсказок в Visual Studio<remarks>...</remarks>
— дополнительный текст, описывающий тип или его член, используется генераторами документации<param name="name">...</param>
— объясняет параметр метода<returns>...</returns>
— объясняет возвращаемое методом значение<exception [cref="type"]>...</exception>
— список исключений, которые могут быть выброшены методом,cref
указывает тип исключения<permission [cref="type"]>...</permission>
— указываетIPermission
тип, требуемый документируемым типом или членом<example>...</example>
— позволяет указать пример использования; обычно содержит текст описания и исходный текст (внутри тэгов<c>
или<code>
)<c>...</c>
— обозначает однострочный фрагмент кода; обычно используется внутри тэга<example>
<code>...</code>
— обозначает многострочный фрагмент кода; обычно используется внутри тэга<example>
<see cref="member">...</see>
— вставляет строчную ссылку на другой тип или член; генераторы документации обычно преобразовывают этот тэг в гиперссылку; компилятор выдаст ошибку если ссылаемый тип или член отсутствуют<seealso cref="member">...</seealso>
— дополнительная ссылка на другой тип или член; генераторы документации обычно вставляют эту ссылку в секцию «See Also» в конце страницы<paramref name="name"/>
— ссылка на параметр из тэгов<summary>
или<remarks>
<para>...</para>
— оформляет контент в виде отдельного абзаца<include file='filename' path='tagpath[@name="id"]'>...</include>
— добавляет внешний xml файл с документацией; атрибутpath
должен содержать XPath выражение, ссылающееся на конкретный элемент в файле<list>
— позволяет оформить контент в виде маркированного или нумерованного списка либо в виде таблицы; полностью выглядит так:12345678910<list type=[ bullet | number | table ]><listheader><term>...</term><description>...</description></listheader><item><term>...</term><description>...</description></item></list>