如何向 C# 9 记录添加注释

How to Add Comments to C# 9 Records

C# 9 记录的缩写形式如下:

public record Car(int CarId, int Cylinders, string Make, string Model);

如何将文档注释添加到记录的属性中?请注意,这与 this 其他询问长格式的问题不同。

正确的方法似乎很简单:

/// <summary>
/// Represents a car.
/// </summary>
/// <param name="CarId">The id of the car.</param>
/// <param name="Cylinders">The number of cylinders.</param>
/// <param name="Make">The make of the car.</param>
/// <param name="Model">The model of the car.</param>
public record Car(int CarId, int Cylinders, string Make, string Model);

当您创建此记录的新实例时,这在 IDE 的 IntelliSense 中起作用(在 VSCode 上测试)(即 new Car(...) 将为您提供不同的参数)。

但是,如果您在 .csproj 中启用了 <GenerateDocumentationFile>true</GenerateDocumentationFile>,则编译器的警告系统本身似乎存在问题。对于每个参数,您将收到以下警告对:

warning CS1572: XML comment has a param tag for 'CarId', but there is no parameter by that name
warning CS1573: Parameter 'CarId' has no matching param tag in the XML comment for 'Car.Car(int, int, string, string)' (but other parameters do)

所以它确实有效,但编译器既抱怨参数未记录,又抱怨参数不存在。

Put record parameters in scope of xml docs #49134 可能会在下一个版本中解决这个问题,希望如此。