首页 > 解决方案 > 使用 C# 9 记录添加评论的正确方法是什么?

问题描述

在启用 Nullable 的 C# 9 记录中添加注释的正确方法是什么?

如果我尝试

public record Person
{
    /// <summary>
    /// Gets the first name.
    /// </summary>
    public string FirstName { get; init; }

    /// <summary>
    ///  Gets the last name.
    /// </summary>
    public string LastName { get; init; }
}

我收到警告。

退出构造函数时,不可为空的属性“FirstName”必须包含非空值。考虑将属性声明为可为空。

如果我尝试

public record Person(string firstName, string lastName);

我收到警告:

缺少公开可见类型或成员“Person.firstName”的 XML 注释

这也不起作用。

/// <summary>
/// Person.
/// </summary>
/// <param name="FirstName">Get the first name.</param>
/// <param name="LastName">Get the last name.</param>
public record Person(string FirstName, string LastName);

发出警告:

XML 注释有一个用于“FirstName”的参数标记,但没有该名称的参数

标签: c#c#-9.0

解决方案


对于第一种情况,您收到的警告与文档注释无关。您有一个不可为空的属性,其默认值等于null。这就是你收到警告的原因。

对于第二种情况,这是编译器中的一个已知问题,已在dotnet/roslyn#49134中修复。

根据@matt-johnson-pint 评论进行编辑,这已通过 Visual Studio 16.9 和 .NET 5.0.200 SDK 修复


推荐阅读