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

时间:2017-03-25 20:21:23

标签: visual-studio-2017 c#-7.0

我不确定如何在现有解决方案中使用新的C#7功能。我尝试在switch语句中使用模式匹配,但我不断收到Value of integral type expected错误。

是否有启用它的技巧?如果我在VS 2017中打开解决方案,我可以使用新功能。

我的项目主要针对.net 4.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;
        }
    }

Code with errors

2 个答案:

答案 0 :(得分:4)

实际上它在没有做任何特殊配置的情况下工作。 Resharper正在给出这些错误,在禁用resharper后,它就像一个魅力。

答案 1 :(得分:0)

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

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

有关详细信息,请参阅:setting c#7.1 in vs2017.3