关于 csharp-docs
csharp-docs 是一项提供 C# API XML 注释规范的技能,涵盖成员说明、参数、返回值、异常、示例及交叉引用。
主要功能
- 01记录公共及复杂内部成员
- 02编写摘要和补充说明
- 03描述参数、类型参数和返回值
- 04记录异常条件和代码示例
- 05引用相关类型与成员
适用场景
- 01为公共 API 添加 XML 注释
- 02说明方法参数和返回值
- 03记录成员的异常条件
- 04编写含示例和引用的 API 文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill csharp-docs安装后在 Claude Code 中输入/csharp-docs确认已加载。
详细介绍
C# 文档最佳实践
- 公共成员应使用 XML 注释进行文档化。
- 鼓励也对内部成员进行文档化,尤其是当它们较为复杂或含义不够直观时。
所有 API 的指南
- 使用
<summary>简要说明类型或成员的作用,以一句话为宜。摘要应以现在时、第三人称的动词开头。 - 使用
<remarks>提供附加信息,其中可以包括实现细节、使用说明或任何其他相关上下文。 - 使用
<see langword>表示语言特定的关键字,如null、true、false、int、bool等。 - 使用
<c>表示行内代码片段。 - 使用
<example>表示如何使用该成员的用法示例。- 使用
<code>表示代码块。<code>标签应放在<example>标签内。使用language属性添加代码示例的语言,例如<code language="csharp">。
- 使用
- 使用
<see cref>在行内(句子中)引用其他类型或成员。 - 使用
<seealso>在在线文档的“另请参阅”部分中单独(不在句子中)引用其他类型或成员。 - 使用
<inheritdoc/>从基类或接口继承文档。- 除非存在重大行为变化,在这种情况下应记录差异。
方法
- 使用
<param>描述方法参数。- 描述应为一个名词短语,不指明数据类型。
- 以不定冠词开头。
- 如果参数是标志枚举,描述应以“A bitwise combination of the enumeration values that specifies...”开头。
- 如果参数是非标志枚举,描述应以“One of the enumeration values that specifies...”开头。
- 如果参数是布尔值,措辞应采用“
<see langword="true" />to ...; otherwise,<see langword="false" />.”的形式。 - 如果参数是“out”参数,措辞应采用“When this method returns, contains .... This parameter is treated as uninitialized.”的形式。
- 使用
<paramref>在文档中引用参数名称。 - 使用
<typeparam>描述泛型类型或方法中的类型参数。 - 使用
<typeparamref>在文档中引用类型参数。 - 使用
<returns>描述方法返回的内容。- 描述应为一个名词短语,不指明数据类型。
- 以不定冠词开头。
- 如果返回类型是布尔值,措辞应采用“
<see langword="true" />if ...; otherwise,<see langword="false" />.”的形式。
构造函数
- 摘要措辞应为“Initializes a new instance of the class [or struct].”。
属性
<summary>应以以下内容开头:- 对于读写属性,使用“Gets or sets...”。
- 对于只读属性,使用“Gets...”。
- 对于返回布尔值的属性,使用“Gets [or sets] a value that indicates whether...”。
- 使用
<value>描述属性的值。- 描述应为一个名词短语,不指明数据类型。
- 如果属性有默认值,请将其添加在单独的句子中,例如“The default is
<see langword="false" />”。 - 如果值类型是布尔值,措辞应采用“
<see langword="true" />if ...; otherwise,<see langword="false" />. The default is ....”的形式。
异常
- 使用
<exception cref>记录构造函数、属性、索引器、方法、运算符和事件引发的异常。 - 记录成员直接引发的所有异常。
- 对于嵌套成员引发的异常,只记录用户最有可能遇到的异常。
- 异常的说明描述引发该异常的条件。
- 省略句首的“Thrown if ...”或“If ...”。直接陈述条件即可,例如“An error occurred when accessing a Message Queuing API.”
评论
支持 Markdown