我们最近收到了一个使用Visual Studio 2015启动的项目。在代码中有开发人员使用的地方
null条件成员访问
运算符。我们正在使用Visual Studio 2013并且代码无法编译我已经阅读了msdn(https://msdn.microsoft.com/en-us/library/6a71f45d(v=vs.140).aspx)的文档,并指出此运算符不适用于Visual Studio 2013.逻辑是什么这个决定背后? c#语法依赖于IDE?对于相同的.net版本,这不应该被修复吗?
答案 0 :(得分:1)
这只是可以与不同版本的C#和VS一起使用的问题。 这不是一个错误。显然,该解决方案正在使用最新的工具和版本c#,您不是。如果你只使用.net 2.0,你将无法使用Linq,这同样适用。因此,你必须以某种方式容纳它
使用VS 2013,它附带.net 4.5.1
和C# 5
,您可以
安装.net framework 4.6 and C#6
,然后只更新项目中的目标框架版本
或使用VS2015,然后只更新项目中的目标框架版本
或费力地将语法糖反转回来,如下所示:
someObject?.PossiblySafeProperty?.LessSafeNestedProperty
//to
string valueYouWant = null;
if(someObject != null && someObject.PossiblySafeProperty!=null)
{
valueYouWant = someObject.PossiblySafeProperty.LessSafeNestedProperty;
}
答案 1 :(得分:0)
就IDE所能解释的而言,C#6语法仅在VS2015中可用。但是,使用最新的编译器将修复您的构建错误(尽管在IDE中没有显示正确)。 .Net版本与语言语法无关,只与您可以使用的库有关。决定背后的逻辑?让您升级到更新的产品,就像免费提供Windows 10一样。微软希望你使用他们提供的“最新和最好的”。