将 Asp.Net Core 3.1 应用程序升级到 .Net 5 后,某些 C# 9 功能不可用

Mat*_*ats 3 c# asp.net-core .net-5 c#-9.0

我通过将相应的 *.csproj 文件修改为以下内容,将 Asp.Net Core 3.1 (MVC) 升级到 .Net 5:

<TargetFramework>net5.0</TargetFramework>
<LangVersion>9.0</LangVersion>
Run Code Online (Sandbox Code Playgroud)

现在我可以使用 C# 9目标类型功能...

string s = new('c', 3); // compiles fine
Run Code Online (Sandbox Code Playgroud)

...但我无法创建记录

public data class User
{
  // IDE1007 The name 'data' does not exist in the current context. 
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

Pav*_*ski 7

根据记录类型规范,您应该使用public record User语法。

最好查看最终规范而不是带有介绍的博客文章,因为有些内容已更改。

您还可以参考GitHub 中的csharplang 存储库来查看最新的规范、设计会议和提案。对于特定的记录功能,最初的问题#39可能用于跟踪最近的更新和规范