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 框架的新类型时发生。
我正在开发一个 .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 框架的新类型时发生。