此注册表固定版本所收录的最新上游作者日期。

csharp-docs

已同步 v1.1.0 许可证: MIT 来源: github/awesome-copilot/skills/csharp-docs 提交: 4742f26 收录的最新变更:

Ensure that C# types are documented with XML comments and follow best practices for documentation.

摘要

用途
创建 XML 文档注解的撰写惯例,清楚说明 C# API 的行为与用法。
使用时机
撰写公开的 C# API 文档,或为复杂且不易理解的内部成员补充说明时使用。
输出结果
提供摘要、补充说明、范例、参照、参数、传回值与属性值,以及例外状况的撰写指引。
上游变更(10 条,最新收录 2026-02-19)
caab1f6 Convert all prompts to skills and update plugin manifests 添加 C# 文档最佳实务技能,涵盖 XML 注解及适用于 API、方法、构造函数、属性与例外的文档指引。
2f9c96d Fix deprecated 'mode' attribute in prompt files by renaming to 'agent' (#441) 将提示档前置数据字段从 `mode` 改为 `agent`。
2b45ca4 feat: update deprecated tool names to namespaced versions (#365) 将提示档工具清单中的 `codebase` 项目改为 `search/codebase`。
69cd4fa update `editFiles` to `edit/editFiles` (#319) 将提示档工具清单中的 `editFiles` 项目改为 `edit/editFiles`。
febd4c4 Expand C# documentation best practices (#273) 扩充 C# 文档指引,加入适用于 API、方法、构造函数、属性与例外的 XML 标签详细规则。
aec65e3 Triple slash doc updates (#202) 添加 `<paramref>` 指引、厘清 `<see langword>` 的用法、区分句中引用的 `<see cref>` 与独立参照的 `<seealso>`,并指定含语言标记的 `<code>` 区块应置于 `<example>` 内。
f1c532c Update csharp-docs.prompt.md (#91) 添加使用 `<see langword>` 标记语言专属关键字的指引。
6fb794b Update development instructions and guidelines (#29) 统一提示档前置数据值的引号格式,改用单引号而非双引号。
e30b801 fixing grammar 修正范例使用指引中的文法,移除重复的 `the`。
9b202e8 C# member documentatino prompt 添加最初版 C# 文档最佳实务提示,概述 XML 注解指引与相关文档标签。
npx skills add "lettucebo/Skills#v2.2.0@csharp-docs" --full-depth

⚠ v2.2.0 发布后即可使用

C# Documentation Best Practices

  • Public members should be documented with XML comments.
  • It is encouraged to document internal members as well, especially if they are complex or not self-explanatory.

Guidance for all APIs

  • Use <summary> to provide a brief, one sentence, description of what the type or member does. Start the summary with a present-tense, third-person verb.
  • Use <remarks> for additional information, which can include implementation details, usage notes, or any other relevant context.
  • Use <see langword> for language-specific keywords like null, true, false, int, bool, etc.
  • Use <c> for inline code snippets.
  • Use <example> for usage examples on how to use the member.
    • Use <code> for code blocks. <code> tags should be placed within an <example> tag. Add the language of the code example using the language attribute, for example, <code language="csharp">.
  • Use <see cref> to reference other types or members inline (in a sentence).
  • Use <seealso> for standalone (not in a sentence) references to other types or members in the "See also" section of the online docs.
  • Use <inheritdoc/> to inherit documentation from base classes or interfaces.
    • Unless there is major behavior change, in which case you should document the differences.

Methods

  • Use <param> to describe method parameters.
    • The description should be a noun phrase that doesn't specify the data type.
    • Begin with an introductory article.
    • If the parameter is a flag enum, start the description with "A bitwise combination of the enumeration values that specifies...".
    • If the parameter is a non-flag enum, start the description with "One of the enumeration values that specifies...".
    • If the parameter is a Boolean, the wording should be of the form "<see langword="true" /> to ...; otherwise, <see langword="false" />.".
    • If the parameter is an "out" parameter, the wording should be of the form "When this method returns, contains .... This parameter is treated as uninitialized.".
  • Use <paramref> to reference parameter names in documentation.
  • Use <typeparam> to describe type parameters in generic types or methods.
  • Use <typeparamref> to reference type parameters in documentation.
  • Use <returns> to describe what the method returns.
    • The description should be a noun phrase that doesn't specify the data type.
    • Begin with an introductory article.
    • If the return type is Boolean, the wording should be of the form "<see langword="true" /> if ...; otherwise, <see langword="false" />.".

Constructors

  • The summary wording should be "Initializes a new instance of the class [or struct].".

Properties

  • The <summary> should start with:
    • "Gets or sets..." for a read-write property.
    • "Gets..." for a read-only property.
    • "Gets [or sets] a value that indicates whether..." for properties that return a Boolean value.
  • Use <value> to describe the value of the property.
    • The description should be a noun phrase that doesn't specify the data type.
    • If the property has a default value, add it in a separate sentence, for example, "The default is <see langword="false" />".
    • If the value type is Boolean, the wording should be of the form "<see langword="true" /> if ...; otherwise, <see langword="false" />. The default is ...".

Exceptions

  • Use <exception cref> to document exceptions thrown by constructors, properties, indexers, methods, operators, and events.
  • Document all exceptions thrown directly by the member.
  • For exceptions thrown by nested members, document only the exceptions users are most likely to encounter.
  • The description of the exception describes the condition under which it's thrown.
    • Omit "Thrown if ..." or "If ..." at the beginning of the sentence. Just state the condition directly, for example "An error occurred when accessing a Message Queuing API."

历史

v1.0.0 bootstrap
v1.1.0 baseline-verified 4742f26
v1.1.0 license-refresh 4742f26