[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 :
Publié 02 mai 08 04:09 par FREMYCOMPANY
Classé sous : ,

Commentaires

# warning said on mai 2, 2008 16:31:

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

Niveaux perf ya pas photo.

# FREMYCOMPANY said on mai 2, 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.

# Jem said on mai 2, 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)

# warning said on mai 3, 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).

# coucou747 said on mai 3, 2008 14:34:

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

Les commentaires anonymes sont désactivés

About FREMYCOMPANY

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.


Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01




Search

Go

Ce blog

Abonnements