如果我有这样的位置记录:
public record Version(int Major, int Minor);
好像只能提供一个
<summary>
文档,像这样:
/// <summary>
/// Version record
/// </summary>
public record Version(int Major, int Minor);
是否可以在保持简短记录语法的同时记录
Major
和Minor
属性(也可能是构造函数参数)?
从 .NET 6.0.300 及更高版本开始,主构造函数上的“参数”文档现在会自动传播到属性上的“摘要”文档。
下面的原始答案。
正如 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;
}
这比自己定义构造函数略短,但更有用,一旦添加了支持,您就可以将文档移至主构造函数,同时知道这不会以任何方式更改生成的代码。如果你想从另一个位置记录继承,也有必要这样做。
从 .NET SDK 6.0.300 和 Visual Studio 2022 版本 17.2 开始,这是通过使用
<param name="property-name">parameter summary</param>
标签完成的。因此,以下将实现预期的结果:
/// <summary>
/// Version record
/// </summary>
/// <param name="Major">Major version</param>
/// <param name="Minor">Minor version</param>
public record Version(int Major, int Minor);