[英]How do I create a C# 8.0 Console application?
我尝试通过模板创建一个 Windows Forms .NET core 3.1 应用程序并将输出类型切换到控制台应用程序。
这是我的代码:
static class Program
{
static void Main()
{
System.Console.WriteLine(0 switch { 0 => "Hello World" });
}
}
当我编译时,我得到:
错误 CS8370:功能“递归模式”在 C# 7.3 中不可用。 请使用 8.0 或更高版本的语言。
我的目标是 .NET Core 3.1。 我认为默认情况下这会让我获得 C# 8.0 语言功能。 显然我错了。
我该怎么办?
编辑:我使用的是 Visual Studio 2019 16.3.9
这是最让我困惑的部分,因为它说语言版本是“根据框架版本自动选择的”(我无法更改它。)我也没有看到为什么我不能的充分解释更改语言版本为什么我不能选择不同的 C# 版本? 该页面说如果我使用 .NET Core 3.x,我应该使用 C# 8.0。
.csproj 文件如下:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon />
<StartupObject>Program</StartupObject>
</PropertyGroup>
</Project>
添加此行可解决问题:
<LangVersion>8.0</LangVersion>
但这真的是创建应用程序的唯一方法吗? 我必须手动编辑我的 .csproj? 为什么我不能更改语言版本,为什么它不会根据我使用 .NET Core 3.1 自动选择 C# 8.0?
打开你的 csproj,看看你是否有这样的一行
<LangVersion>7.3</LangVersion>
如果是,请尝试删除它,如果这不起作用,请尝试将其更改为 8.0
我遇到了同样的问题(c#8 在 Core 3.1 项目中不可用),我是这样解决的:
csproj 中不需要 LangVersion。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.