【问题标题】:Documentation comments for properties of positional records in C#C# 中位置记录属性的文档注释
【发布时间】:2020-12-17 13:45:34
【问题描述】:

如果我有这样的位置记录:

public record Version(int Major, int Minor);

看来我只能提供<summary>的文档,像这样:

/// <summary>
/// Version record
/// </summary>
public record Version(int Major, int Minor);

是否可以在保持简短记录语法的同时记录 MajorMinor 属性(也可能是构造函数参数)?

【问题讨论】:

  • 不确定但试试这个 /// 主要。 /// 次要。 或安装 GhostDoc,一个很棒的插件,可以自动注释你的代码
  • 输入/// 并按空格会生成带有参数的XML 注释吗?您使用的是哪个视觉工作室版本?这对我有用(vs 19,版本 16.7.1)而且我没有安装 ghostDoc。

标签: c# record xml-comments c#-9.0


【解决方案1】:

正如 canton7 指出的那样,这是still under development

目前记录属性和参数的最佳解决方法是明确定义属性,同时保持记录的位置:

/// <summary>
/// Version record
/// </summary>
/// <param name="Major">Major constructor parameter</param>
/// <param name="Minor">Minor constructor paramater</param>
public record Version(int Major, int Minor)
{
    /// <summary>
    /// Major Property
    /// </summary>
    public int Major { get; init; } = Major;

    /// <summary>
    /// Minor property
    /// </summary>
    public int Minor { get; init; } = Minor;
}

这比自己定义构造函数略短,但更有用的是,添加支持后,您可以将文档移动到主构造函数,同时知道这不会以任何方式更改生成的代码。如果您想从另一个位置记录继承,也有必要这样做。

【讨论】:

【解决方案2】:

你可以这样记录:

/// <summary>
/// Version record
/// </summary>
/// <param name="Major">Major version</param>
/// <param name="Minor">Minor version</param>
public record Version(int Major, int Minor);

然后你在代码中使用它时就有了文档:

【讨论】:

  • 不过,这不会向属性添加文档。
  • 我想知道为什么有人想记录和整数。如果你需要更多的文档,你可以设置一个类属性来记录类。
猜你喜欢
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2011-06-17
  • 2022-11-10
  • 1970-01-01
  • 2016-05-07
相关资源
最近更新 更多