Visual studio 2017 如何在现有项目中启用C#7功能

Visual studio 2017 如何在现有项目中启用C#7功能,visual-studio-2017,c#-7.0,Visual Studio 2017,C# 7.0,我不知道如何在现有解决方案中使用新的C#7功能。我尝试在switch语句中使用模式匹配,但我一直得到integral type expected的值 有什么诀窍可以实现它吗?我想如果我在VS 2017中打开解决方案,我可以使用新功能 我的项目以.NET4.6.2为目标 下面是示例代码 private void CS7Test(object o) { switch (o) { case null:

我不知道如何在现有解决方案中使用新的C#7功能。我尝试在switch语句中使用模式匹配,但我一直得到integral type expected的

有什么诀窍可以实现它吗?我想如果我在VS 2017中打开解决方案,我可以使用新功能

我的项目以.NET4.6.2为目标

下面是示例代码

    private void CS7Test(object o)
    {
        switch (o)
        {
            case null:
                Console.WriteLine("it's a constant pattern");
                break;
            case int i:
                Console.WriteLine("it's an int");
                break;
            case UserInfo p when p.Username.StartsWith("Ka"):
                Console.WriteLine($"a Ka person {p.Username}");
                break;
            case UserInfo p:
                Console.WriteLine($"any other person {p.Username}");
                break;
            case var x:
                Console.WriteLine($"it's a var pattern with the type {x?.GetType().Name} ");
                break;
            default:
                break;
        }
    }

实际上,它在不进行任何特殊配置的情况下工作。Resharper发出了这些错误,在禁用Resharper后,它工作得非常出色。

Vs 2017默认配置为支持c#7.0并启用Resharper。 您不需要禁用它

在vs 2017 update 3中,您可以将其配置为使用c#7.1的新功能(并且还启用了resharper)


有关更多详细信息,请查看:

是否可以包含一些演示此错误的代码?除了需要添加值元组nuget包外,使用C#7只需在BS2017中打开它。@DavidArno添加了示例代码。项目属性| Build | Advanced…|语言版本。您可以控制每个项目使用的语言版本,但由于“默认”语言版本(大多数人默认使用)已在VS2017中更新为C#7.0,因此它应该自动工作。对于C#7.1,我们将提供灯泡体验,以帮助更改语言版本(因为“默认”表示“最新的主要版本”)。手动添加到.csproj属性
7.1
对我有效。