编译器错误 CS8803

顶级语句必须位于命名空间和类型声明之前。

示例

下面的示例生成 CS8803:

// CS8803.cs (0,0)

public record Person
{
    public string? GivenName { get; set; }
    public string? FamilyName { get; set; }
}

int i = 0;

在具有顶级语句的文件中,顶级语句必须在任何类型声明之前发生。

更正此错误

将代码移到命名空间声明之前:


int i = 0;

public record Person
{
    public string? GivenName { get; set; }
    public string? FamilyName { get; set; }
}

通常,类型在各自的文件中声明,这也将通过将类型声明与顶级语句分开来更正此错误。