C# 中位置记录属性的文档注释

Documentation comments for properties of positional records in C#

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

public record Version(int Major, int Minor);

好像只能提供一个<summary>文档,像这样:

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

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

您可以这样记录它:

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

然后您在代码中使用它时获得了文档:

正如 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;
}

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