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

Dan*_*bić 5 c# record xml-comments c#-9.0

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

public record Version(int Major, int Minor);
Run Code Online (Sandbox Code Playgroud)

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

/// <summary>
/// Version record
/// </summary>
public record Version(int Major, int Minor);
Run Code Online (Sandbox Code Playgroud)

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

Yai*_*adt 11

正如 canton7 所指出的,这仍在开发中

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

/// <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;
}
Run Code Online (Sandbox Code Playgroud)

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