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);
是否可以在保持短记录语法的同时记录 Major
和 Minor
属性(也可能是构造函数参数)?
您可以这样记录它:
/// <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;
}
这比自己定义构造函数稍微短一些,但更有用的是,一旦添加了支持,您就可以将文档移至主构造函数,同时知道这不会以任何方式更改生成的代码。如果你想从另一个位置记录继承,也有必要这样做。
如果我有这样的位置记录:
public record Version(int Major, int Minor);
好像只能提供一个<summary>
文档,像这样:
/// <summary>
/// Version record
/// </summary>
public record Version(int Major, int Minor);
是否可以在保持短记录语法的同时记录 Major
和 Minor
属性(也可能是构造函数参数)?
您可以这样记录它:
/// <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;
}
这比自己定义构造函数稍微短一些,但更有用的是,一旦添加了支持,您就可以将文档移至主构造函数,同时知道这不会以任何方式更改生成的代码。如果你想从另一个位置记录继承,也有必要这样做。