我不确定如何在现有解决方案中使用新的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;
}
}
答案 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