我記得我在某處讀過這篇文章,但現在無法在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