' ces 2 opérateurs existent pour VB.NET mais pas pour VB6.
' le vrai but de ces opérateurs est de ne pas "évaluer" le 2e argument.
' avec ces fonctions le but n'est que pratique pour la syntaxe mais les paramètres
' sont forcéments évalués tous les 2 en entrant dans la fonction
Function IfAndAlso(ByVal bParam1 As Boolean, ByVal bParam2 As Boolean) As Boolean
'VB# - si la condition1 est fausse, la deuxième n'est pas testé et _
le code se rend directement au end if
If bParam1 Then
IfAndAlso = bParam2
Else
IfAndAlso = False
End If
End Function
Function IfOrElse(ByVal bParam1 As Boolean, ByVal bParam2 As Boolean) As Boolean
'VB# - si la condition1 est vrai, la deuxième n'est pas testé et _
le bloc d'instruction est executé
If bParam1 Then
IfOrElse = True
Else
IfOrElse = bParam2
End If
End Function
' exemple d'utilisation en VB6 (à voir en mode pas à pas - F8)
Private Sub Form_Load()
Dim i%, j%, k%, l%
i = 3: j = 6: k = 2: l = 6
If IfAndAlso(i = 2, j = 6) Then
Debug.Print "condition 1 ok"
End If
If IfAndAlso(i = 3, j = 6) Then
Debug.Print "condition 2 ok"
End If
If IfOrElse(i = 2, j = 6) Then
Debug.Print "condition 3 ok"
End If
If IfOrElse(i = 3, j = 6) Then
Debug.Print "condition 4 ok"
End If
' condition ok si (i=3 et k=2) et (j=3 ou l=6)
If IfAndAlso(IfAndAlso(i = 3, k = 2), IfOrElse(j = 3, l = 6)) Then
Debug.Print "condition 5 ok"
End If
Unload Me
End Sub