可空操作员。?

时间:2014-09-22 08:58:33

标签: c# operators nullable

我记得我在某个地方看过这个,但现在无法在Google结果中找到它。

最新的C#(VS2013)是否支持任何此类运营商?

SomeObject.?SomeMember = SomeValue;

仅当SomeValue不为空时,才应将SomeObject.SomeMember分配给SomeObject

N.B:我知道我们可以通过HasValue和其他方式做到这一点。我只是询问新的运营商。

3 个答案:

答案 0 :(得分:5)

它与Nullable类型无关。它是null propagation operator并且适用于每个可以为空的类型,不仅适用于Nullable<T>,引用类型为好。

  

最新的C#(VS2013)是否支持任何此类运营商?

如果您使用的是VS 2013或Visual Studio 14 CTP 3

,则可以安装Roslyn最终用户预览

答案 1 :(得分:1)

它可以在Roslyn编译器中使用,它名为Null-propagation - 它已经实现了。默认情况下,Roslyn编译器将在VS 14中提供。

答案 2 :(得分:0)

不,Visual Studio 2013不支持此类运算符。至少没有开箱即用。

如果您要使用null propagation operator或任何其他C# 6 feature,则必须安装并使用Roslyn的CTP。 Roslyn将是Visual Studio“14”的默认编译(我们还不知道它的确定名称)。