空條件運算子

為了避免冗長的空檢查,已經在語言中引入了 ?. 運算子。

舊的詳細語法:

If myObject IsNot Nothing AndAlso myObject.Value >= 10 Then

現在可以簡潔地取代:

If myObject?.Value >= 10 Then

當你擁有一系列屬性時,? 運算子特別強大。考慮以下:

Dim fooInstance As Foo = Nothing
Dim s As String

通常你必須寫這樣的東西:

If fooInstance IsNot Nothing AndAlso fooInstance.BarInstance IsNot Nothing Then
    s = fooInstance.BarInstance.Baz
Else
    s = Nothing
End If

但是使用 ? 運算子,可以用以下程式碼替換:

s = fooInstance?.BarInstance?.Baz