Partager via


Paramètres facultatifs

Mise à jour : novembre 2007

Vous pouvez spécifier qu'un paramètre de procédure est facultatif et qu'il n'est pas nécessaire de fournir un argument lorsque la procédure est appelée. Les arguments facultatifs sont indiqués à l'aide du mot clé Optional dans la définition de la procédure. Les règles suivantes s'appliquent :

  • Chaque paramètre facultatif dans la définition de la procédure doit spécifier une valeur par défaut.

  • La valeur par défaut d'un paramètre facultatif doit être une expression constante.

  • Tous les paramètres qui suivent un paramètre facultatif dans la définition de la procédure doivent également être facultatifs.

La syntaxe suivante montre une déclaration de procédure comprenant un paramètre facultatif :

Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)

Appel de procédures à l'aide de paramètres facultatifs

Lorsque vous appelez une procédure à l'aide d'un paramètre facultatif, vous pouvez choisir de fournir l'argument ou non. Dans le cas contraire, la procédure utilise la valeur par défaut déclarée pour ce paramètre.

Pour omettre un ou plusieurs arguments facultatifs dans la liste des arguments, utilisez des virgules successives afin de marquer leurs positions. L'exemple d'appel suivant fournit le premier et le quatrième argument, mais pas le deuxième ni le troisième :

Call sub name(argument 1, , , argument 4)

Détermination de la présence d'un argument facultatif

Une procédure ne peut pas détecter au moment de l'exécution si un argument donné a été omis ou si le code appelant a explicitement fourni la valeur par défaut. Pour établir cette distinction, vous pouvez définir une valeur improbable comme valeur par défaut. La procédure suivante définit le paramètre facultatif office, puis teste sa valeur par défaut, QJZ, pour déterminer s'il a été omis dans l'appel :

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub

Si le paramètre facultatif est un type référence tel que String, vous pouvez utiliser Nothing comme valeur par défaut, à condition qu'il ne s'agisse pas d'une valeur attendue pour l'argument.

Paramètres facultatifs et surcharge

La surcharge est une autre méthode permettant de définir une procédure à l'aide de paramètres facultatifs. Si vous disposez d'un seul paramètre facultatif, vous pouvez définir deux versions surchargées de la procédure, l'une avec le paramètre et l'autre sans. Cette approche se complique au fur et à mesure que le nombre de paramètres facultatifs augmente. Cependant, vous avez l'avantage de savoir avec certitude si le programme appelant a fourni chaque argument facultatif.

Voir aussi

Tâches

Comment : définir des paramètres optionnels pour une procédure

Comment : appeler une procédure qui accepte des paramètres optionnels

Comment : déterminer si un paramètre optionnel a été fourni

Concepts

Procédures dans Visual Basic

Paramètres et arguments d'une procédure

Passage d'arguments par valeur et par référence

Passage des arguments par position et par nom

Tableaux de paramètres

Surcharge de procédure

Référence

Optional (Visual Basic)

ParamArray