我记得我在某处读过这篇文章,但现在无法在Google搜索结果中找到它。可为空的运算符。?
最新的C#(VS2013)是否支持这样的操作符?
SomeObject.?SomeMember = SomeValue;
这应该分配给SomeValue
仅SomeObject.SomeMember
如果SomeObject
不为空。
N.B:我知道我们可以通过HasValue
和其他方式做到这一点。我只是在问新的运营商。
我记得我在某处读过这篇文章,但现在无法在Google搜索结果中找到它。可为空的运算符。?
最新的C#(VS2013)是否支持这样的操作符?
SomeObject.?SomeMember = SomeValue;
这应该分配给SomeValue
仅SomeObject.SomeMember
如果SomeObject
不为空。
N.B:我知道我们可以通过HasValue
和其他方式做到这一点。我只是在问新的运营商。
那么它与Nullable
types.It是null propagation operator无关,并将适用于每个类型可以为空,而不仅仅是Nullable<T>
,引用类型以及。
最新的C#(VS2013)是否支持任何此类运算符?
如果你正在使用VS 2013,或Visual Studio你可以安装罗斯林最终用户预览14 CTP 3
它是Roslyn
编译器可用,这就是所谓Null-propagation - 它已经实现。默认情况下,Roslyn编译器将在VS 14中可用。
不,Visual Studio 2013不支持这样的操作符。至少不是开箱即用。
如果要使用null propagation operator或任何其他C# 6 feature,则必须安装并使用Roslyn的CTP。尽管Roslyn将是Visual Studio“14”的默认编译版本(我们还不知道它的权威名字)。
我基本上试图将控件绑定到它(ASP.NET WebForms模型绑定)。像这样:'Text ='<%#Item.Manufacturer?.Name%>' – dotNET 2014-09-22 09:02:58
@Jehof:您的意思是C#6.0 – 2014-09-22 09:03:00
以下是关于Codeplex上此功能的原始详细讨论:https://roslyn.codeplex.com/讨论/ 540883 – 2014-09-22 09:03:55