Liste de paramètres (Visual Basic)
Spécifie les paramètres attendus par une procédure lorsqu’elle est lancée. Les paramètres multiples sont séparés par des virgules. Voici la syntaxe d’un paramètre.
Syntaxe
[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]
Éléments
attributelist
Optionnel. Liste des attributs qui s’appliquent à ce paramètre. Vous devez placer la liste des attributs entre chevrons (« <
» et « >
»).
Optional
Optionnel. Spécifie que ce paramètre n’est pas obligatoire lorsque la procédure est appelée.
ByVal
Optionnel. Spécifie que la procédure ne peut pas remplacer ou réaffecter l’élément variable sous-jacent à l’argument correspondant dans le code appelant.
ByRef
Optionnel. Spécifie que la procédure peut modifier l’élément de variable sous-jacent dans le code appelant de la même façon que le code appelant en question.
ParamArray
Optionnel. Spécifie que le dernier paramètre de la liste de paramètres est un tableau facultatif d'éléments du type de données spécifié. Cela permet au code appelant de passer un nombre arbitraire d’arguments à la procédure.
parametername
Obligatoire. Nom de la variable locale représentant le paramètre.
parametertype
Obligatoire si Option Strict
est On
. Type de données de la variable locale représentant le paramètre.
defaultvalue
Obligatoire pour les paramètres Optional
. Toute constante ou expression constante qui prend la valeur du type de données du paramètre. Si le type est Object
, une classe, une interface, un tableau ou une structure, la valeur par défaut ne peut être que Nothing
.
Notes
Les paramètres sont entourés de parenthèses et séparés par des virgules. Un paramètre peut être déclaré avec n’importe quel type de données. Si vous ne spécifiez pas parametertype
, la valeur par défaut est Object
.
Lorsque le code appelant appelle la procédure, il transmet un argument à chaque paramètre requis. Pour plus d’informations, consultez Différences entre les paramètres et les arguments.
L'argument que le code appelant transmet à chaque paramètre est un pointeur sur un élément sous-jacent du code appelant. Si cet élément n’est pas modifiable (constante, littérale, énumération ou expression), il est impossible pour tout code de le modifier. S’il s’agit d’un élément variable (une variable déclarée, un champ, une propriété, un élément de tableau ou un élément de structure), le code appelant peut le modifier. Pour plus d’informations, consultez Différences entre les arguments modifiables et non modifiables.
Si un élément de variable est passé ByRef
, la procédure peut également la modifier. Pour plus d’informations, consultez Différences entre le passage d’un argument par valeur et par référence.
Règles
Parenthèses. Si vous spécifiez une liste de paramètres, vous devez l’inclure entre parenthèses. S’il n’existe aucun paramètre, vous pouvez toujours utiliser des parenthèses englobant une liste vide. Cela améliore la lisibilité de votre code en clarifiant que l’élément est une procédure.
Paramètres facultatifs. Si vous utilisez le modificateur
Optional
sur un paramètre, tous les paramètres suivant sur la liste doivent également être facultatifs et déclarés à l’aide du modificateurOptional
.Chaque déclaration de paramètre facultative doit fournir la clause
defaultvalue
.Pour plus d’informations, consultez Paramètres facultatifs.
Tableaux de paramètres. Vous devez spécifier
ByVal
pour un paramètreParamArray
.Vous ne pouvez pas utiliser à la fois
Optional
etParamArray
dans la même liste de paramètres.Pour plus d’informations, consultez Tableaux de paramètres.
Mécanisme de passage. Le mécanisme par défaut de chaque argument est
ByVal
, ce qui signifie que la procédure ne peut pas modifier l’élément de variable sous-jacent. Toutefois, si l’élément est un type de référence, la procédure peut modifier le contenu ou les membres de l’objet sous-jacent, même si elle ne peut pas remplacer ou réaffecter l’objet lui-même.Noms de paramètres. Si le type de données du paramètre est un tableau, suivez
parametername
immédiatement les parenthèses. Pour plus d’informations sur les noms de paramètres, consultez Noms d’éléments déclarés.
Exemple
L’exemple suivant montre une procédure Function
qui définit deux paramètres.
Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")