Null 4.6 框架运算符

Null 4.6 framework operator

我正在开发一个 .NET 4.5 项目,它将 运行 在 Windows 7 台机器上;但是我正在 Windows 10 机器上开发它。

我遇到的问题是,空检查运算符 ?. 仅在 .NET 4.6 中引入(据我所知)。

即使我的项目是针对.NET 4.5 的,我仍然可以在我的代码中使用?. 运算符,并且VS returns 没有错误。 这是我的意思的一个例子:

前?。运营商代码:

            var sAdditionalNode  = xNodes.Current.SelectSingleNode("Details/SomeDetails", xNameSpace);
            if (sAdditionalNode!=null)
            {
                var sAdditionalDetails = sAdditionalNode.Value;
            }

在 ?.运营商已实施

var sAdditionalDetails = xNodes.Current.SelectSingleNode("Details/SomeDetails", xNameSpace)?.Value;

我相信我是正确的吗,即使目前我在我的代码中使用 ?. 运算符没有问题;一旦我在 Windows 7(使用 .NET 4.5)下部署我的项目,我会突然开始遇到问题吗?

Roslyn 实际上可以为旧版本的 .net 框架编译代码。使用 elvis 操作员应该是安全的。兼容性问题只应在您使用来自目标 .net 框架的新类型时发生。