c# - 在 Visual Studio 中支持 C# 9.0
问题描述
如何在 C# 9.0 中打开对 records 关键字的支持?
当我尝试使用 newrecord
关键字(或)时,我在 Visual Studio 中init
收到了意外的令牌错误。
我错过了什么?还是 Visual Studio 16.8 不支持 C# 9.0?
public record Person
{
public string? FirstName { get; init; }
public string? LastName { get; init; }
}
更新:只需阅读标记的答案。下面的信息最终对这个问题并不重要,在这里仅用于文档目的。
我正在使用 Visual Studio 16.8,并9.0
在我的项目文件中设置了语言。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<LangVersion>9.0</LangVersion>
<TargetFramework>net5.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.9">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
</Project>
视觉工作室版本
已安装的 SDK
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
2.1.201 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.301 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]
2.1.508 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.801 [C:\Program Files\dotnet\sdk]
2.2.300 [C:\Program Files\dotnet\sdk]
3.0.100 [C:\Program Files\dotnet\sdk]
3.1.201 [C:\Program Files\dotnet\sdk]
5.0.100 [C:\Program Files\dotnet\sdk]
证明它正在运行 .NET 5。
因此,为了确保它确实在运行 .NET 5,我创建了一个输出 .NET 运行时版本的路由。看起来它真的在运行 .NET 5。
解决方案
在分析了错误消息的加载时间并在 Rider IDE 中收到相同的错误消息后,我得出结论,它必须是 Resharper。
我卸载了 Resharper,错误消息消失了。
更新
Resharper 2020.3 和Rider 2020.3现已发布,正式支持 .NET 5 和 C# 9。
推荐阅读
- python - 如何将字符串转换为 GUID,反之亦然
- graph - 从现有的 .jtl 文件生成图表报告
- javascript - 无法从ajax中的本地文件中获取数据
- angular - 复杂对象中的复杂对象在角度 7 中未定义
- c# - 将 Windows-Forms ComboSox 数据源设置为列表中对象的特定属性
- node.js - 测试 AWS S3 Presigned Url 返回 403 Forbidden (Nodejs)
- java - 有界通配符和向队列添加新元素
- python - 每次运行此代码时,我都会得到 Traceback(最近一次调用),如何解决这个问题?
- c# - 是否可以使用 HttpClient / RestSharp 自动生成标头?
- java - 如何在提交之前解锁乐观锁定(在 Hibernate 中)?