空条件运算符

为了避免冗长的空检查,已经在语言中引入了 ?. 运算符。

旧的详细语法:

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