[VB9] La fonction/opérateur IF : une nouveauté passée inaperçue
Cette fonction a du passer à la trappe. En effet, je n'avais jamais vu son existence ni n'avais entendu parlé d'elles dans les posts parlant des nouveautés de la nouvelle version de VB.NET.
Quelle est son principe ?
C'est en quelque sorte l'équivalent de l'opérateur bool?truePart:falsePart de C#.
Cette fonction est différente de IIF car ce n'est en fait pas une fonction. Voici un exemple qui vous aidera à en comprendre la rasion :
'''' L'opérateur IF
Try
Dim E as Type = IF (True, True.getType(), Nothing.getType())
Catch ex as Exception
' Ne sera jamais atteint
' Seul True.getType() sera évalué, qui lui ne génère par d'erreur
Console.WriteLine("Nothing.getType à été évalué")
End Try
'''' La fonction IIF
Try
Dim E as Type = IIF (True, True.getType(), Nothing.getType())
Catch ex as Exception
' Sera atteint
' Nothing.getType() sera évalué, et il génère une erreur
Console.WriteLine("Nothing.getType à été évalué")
End Try
L'opérateur || de JavaScript
Une surchage de la fonction/opérateur IF permet aussi d'obtenir une variante l'opérateur || de JavaScript.
Pour ceux qui ne ne connaissent pas, ce n'est pas grave.
Voici un code pour expliquer plus précisément le code
Public Sub X(Optional Arg as Object = Nothing)
' L'opération qui suit peut aussi s'écrire
' Dim Arg2 = IF(Arg, new Object())
Dim Arg2 as Object
If Not CBool(Arg) Then
Arg2 = new Object()
Else
Arg2 = Arg
End If
End Sub
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
François REMY est un jeune développeur belge plein d'entrain qui traite surtout des technologies du web et de DotNet dans ses articles.