Coalesce operator and Conditional operator in VB.N

2019-01-19 11:42发布

问题:

Possible Duplicate:
Is there a conditional ternary operator in VB.NET?

Hi guys, Can we use Coalesce operator(??) and conditional ternary operator(:) in VB.NET as in C#?

回答1:

I think you can get close with using an inline if statement:

//C#
int x = a ? b : c;

'VB.Net
Dim x as Integer = If(a, b, c)


回答2:

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


回答3:

just for reference, Coalesce operator for String

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


回答4:

If should be IIf

Dim x as Integer=IIf(a,b,c)