我认为你可以使用内联if语句来接近:
//C# int x = a ? b : c; 'VB.Net Dim x as Integer = If(a, b, c)
Sub Main() Dim x, z As Object Dim y As Nullable(Of Integer) z = "1243" Dim c As Object = Coalesce(x, y, z) End Sub Private Function Coalesce(ByVal ParamArray x As Object()) Return x.First(Function(y) Not IsNothing(y)) End Function
仅供参考,String的Coalesce运算符
Private Function Coalesce(ByVal ParamArray Parameters As String()) As String For Each Parameter As String In Parameters If Not Parameter Is Nothing Then Return Parameter End If Next Return Nothing End Function