[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 
Publié vendredi 2 mai 2008 16:09 par FREMYCOMPANY
Classé sous ,
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 :

Commentaires

# re: [VB9] La fonction/opérateur IF : une nouveauté passée inaperçue vendredi 2 mai 2008 16:31

Il était temps que cette fonction fasse enfin son apparition ! :D

Niveaux perf ya pas photo.

warning

# re: [VB9] La fonction/opérateur IF : une nouveauté passée inaperçue vendredi 2 mai 2008 18:22

Niveau performation, c'est en effet meilleur (pré-compilation, évalution du membre utile uniquement, pas d'ajout à la callstack, ...)

Je me demande juste pourquoi IIF a été laissé, et pourquoi IF n'a pas plus été promu.

FREMYCOMPANY

# re: [VB9] La fonction/opérateur IF : une nouveauté passée inaperçue vendredi 2 mai 2008 21:10

Il me semble que cette nouveauté de VB9 a été autant promue que les autres : c'est à dire très peu par rapport au C#...

Sinon, un exemple de mauvaise utilisation de IIF que j'aime bien prendre :

Dim resultat as Integer = IIf(TableAVider="Table1",ViderTable1,ViderTable2)

Jem

# re: [VB9] La fonction/opérateur IF : une nouveauté passée inaperçue samedi 3 mai 2008 14:01

Je penses que c'est bien d'avoir laissé IIf:

1- pour la compatibilité des codes-sources VB6/7/8 avec VB9

2- pour effectuer 2 actions et ne retourner le résultat que d'une seule (dans des cas bien particulier c'est utile).

warning

# re: [VB9] La fonction/opérateur IF : une nouveauté passée inaperçue samedi 3 mai 2008 14:34

on appelle ca un ternaire (en tout cas, dans les autres langages)

coucou747


Les 10 derniers blogs postés

- ssdl view et TPT par Matthieu MEZIL le il y a 23 heures et 59 minutes

- L'injection SQL n'est PAS un problème QUE pour les développeurs web ! par CoqBlog le 07-05-2008, 01:08

- Un outil pour réaliser des animations WPF basées sur des équations de Bézier par Perspective le 07-04-2008, 21:45

- Sandcastle et CodePlex : le verdict par CoqBlog le 07-04-2008, 20:53

- ssdl view et TPH par Matthieu MEZIL le 07-04-2008, 19:12

- Webcasts sur le Parallel Framework disponibles par Matthieu MEZIL le 07-04-2008, 17:26

- [Silverlight] - Comprendre et Débuter avec Silverlight par Danuz le 07-04-2008, 12:41

- SharePoint : Nouvel article sur l'exportation et Importation de sites SharePoint par Blog Technique de Romelard Fabrice le 07-04-2008, 01:00

- ImagineCup 2008 Final in Paris: Day 1 par Richard Clark le 07-03-2008, 22:48

- PowerShell : Comment utiliser un ENUM .NET dans un script PowerShell par Blog Technique de Romelard Fabrice le 07-03-2008, 18:09