c#null条件成员访问运算符

时间:2016-02-22 13:46:17

标签: visual-studio-2013 visual-studio-2015 operators

我们最近收到了一个使用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版本,这不应该被修复吗?

2 个答案:

答案 0 :(得分:1)

这只是可以与不同版本的C#和VS一起使用的问题。 这不是一个错误。显然,该解决方案正在使用最新的工具和版本c#,您不是。如果你只使用.net 2.0,你将无法使用Linq,这同样适用。因此,你必须以某种方式容纳它

使用VS 2013,它附带.net 4.5.1C# 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一样。微软希望你使用他们提供的“最新和最好的”。