在VB编译器的VS2008版本中,IIf
method总是返回一个对象并且没有短路,已被新的短路类型推断If
operator所取代。 :
Dim x = IIf(True, "a", "b") ' yields an Object
Dim y = If(True, "a", "b") ' yields a String
Choose
method是否有类似的,现代的替代品(即短路,类型推断版)?或者它是不再使用的兼容性遗物?
Dim x = Choose(1, "a", "b", "c") ' yields an Object
Dim y = ...?
答案 0 :(得分:4)
没有内置功能,但您可以轻松实现自己的功能:
Function Choose(Of T)(index As Integer, ParamArray args As T()) As T
If index < 1 OrElse index > args.Length Then
Return Nothing
Else
Return args(index - 1)
End If
End Function
试一试
Dim y = Choose(1, "a", "b", "c") ' yields an string