如何启用 C# 9.0-preview

32

我已经下载并安装了v5.0.0-preview.5。我的项目目标是net5.0,但C# 9.0无法工作。我该如何启用C# 9.0


你是在使用Visual Studio 2019、Visual Studio Code,还是只是使用命令行和/或MSBuild? - Dai
2
我认为在dotnet 5预览版5中的c# 9版本与dotnet 5预览版4中的相同。使用下面的说明,可以编译来自预览版4发行说明的示例代码,但您无法获得Mads于5月20日演示中的令人兴奋的“热点”功能。例如,数据类不起作用,只读属性的“init”关键字也不起作用。 - Mike Wodarczyk
2
您可以在功能状态页面中跟踪已经实现的功能。记录仍在进行中。 - Pavel Anikhouski
@JerzyGrzelec,您使用的VS版本太旧了。即使是最新的VS和.NET Core预览版,也只有少数几个C# 9功能可用。更好的问题应该是“我如何使用C# 9的X特性?” - Panagiotis Kanavos
@PanagiotisKanavos 在 sharplab 中,您可以切换到 roslyn 分支 https://imgur.com/a/xWcCHJd - Pavel Anikhouski
显示剩余6条评论
4个回答

29

截至2020年10月:

请参见@Pac0在此处的答案: https://dev59.com/XFIG5IYBdhLWcg3w419n#64386529

截至2020年6月:

根据文档中的这个页面,您需要编辑*.csproj以将<LangVersion>设置为preview

在有关预览版发布的博客文章中也提到了,但上述文档页面没有提到您还需要更新项目的targetFramework属性net5.0(这是因为C#设计团队决定将整个C#语言版本限制为最低BCL版本,而以前您可以使用C# 7甚至.NET Framework 2.0 只要重新实现自己缺少的BCL类型,如ValueTupleExtensionAttribute)。

因此,您的*.csproj文件应如下所示:

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
   <TargetFramework>net5.0</TargetFramework>
 </PropertyGroup>
</Project>

1
对于那些不知道如何打开项目文件 *.csproj 的人:在 解决方案资源管理器 上右键单击您的项目,然后选择 编辑项目文件 - Second Person Shooter
@JerzyGrzelec 我删除了我的回答中的 csc langversion 部分,因为它是不准确和误导性的。 - Dai
2
@JerzyGrzelec 这确实可行。然而,C# 9 的大部分功能尚未发布。您是否尝试使用任何可用的功能?您是否尝试安装 Visual Studio 2019 的预览版本之一?记录尚未发布,即使在最新的预览版中也是如此。 - Panagiotis Kanavos
不再是这样了 - .NET 5 Preview 6昨天发布,支持记录初始化。 - Panagiotis Kanavos
@AnuViswan 我从 https://aka.ms/dotnet/net5/dev/Sdk/dotnet-sdk-win-x64.exe 获取了预览版。唯一仍有点问题的是,我必须在 CLI 上直接使用 dotnet build 来构建 .csproj。即使启用了“使用 .NET Core 预览 SDK”设置,在 VS2019 中构建也无法正常工作。 - PuerNoctis
显示剩余7条评论

14

截至2020年10月,

  1. 您可以在.csproj中显式使用9.0语言版本。
  2. 将目标框架设置为.net 5 默认情况下隐式使用C# 9

.csproj应该如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
</Project>

如果您希望,可以添加<LangVersion>9.0</LangVersion>,但这应该是可选的。

当然,可以适应OutputType,并且您将需要.NET 5 SDK

有关更多信息,请参见此博客


7
首先下载.NET 5,然后安装Visual Studio 预览版。这样您就可以访问C# 9的最新功能了。还请确保您的项目文件包含以下内容。
 <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<LangVersion>preview</LangVersion>

0
如果有人看到这条信息,现在可以使用VisualStudio安装程序来完成此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接