Visual studio 2017 如何在现有项目中启用C#7功能
我不知道如何在现有解决方案中使用新的C#7功能。我尝试在switch语句中使用模式匹配,但我一直得到integral type expected的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:
值
有什么诀窍可以实现它吗?我想如果我在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
对我有效。