Partager via


Comment : définir une procédure avec un nombre indéfini de paramètres

Mise à jour : novembre 2007

Vous pouvez déclarer un tableau de paramètres comme dernière entrée dans la liste de paramètres d'une procédure. Cela permet à la procédure d'accepter un jeu de valeurs pour ce paramètre, au lieu d'une seule valeur. Vous n'êtes pas obligé de connaître le nombre de valeurs lors de la définition de la procédure. Le jeu est déterminé individuellement par chaque appel à la procédure, et chaque appel peut passer un nombre différent de valeurs.

Pour plus d'informations, consultez Tableaux de paramètres.

Pour définir une procédure qui peut accepter un nombre indéfini de valeurs pour son dernier paramètre

  1. Dans la déclaration de la procédure, définissez normalement la liste de paramètres. Tous les paramètres excepté le dernier doivent être requis (et non Optional (Visual Basic)).

  2. Précédez le dernier nom de paramètre avec les mots clé ByVal ParamArray. Ce paramètre est automatiquement facultatif. N'incluez pas le mot clé Optional.

  3. Faites suivre le nom de tableau de paramètres par des parenthèses vides.

  4. Faites suivre les parenthèses vides de la clause As habituelle.

  5. Ne faites pas suivre la clause As d'une valeur par défaut. La valeur par défaut du tableau de paramètres représente automatiquement un tableau unidimensionnel vide du type de données que vous avez spécifié dans la clause As.

Utilisation des valeurs de tableau de paramètres

Le code de la procédure doit traiter le tableau de paramètres comme un tableau unidimensionnel dont chaque élément est du même type de données que le type de données ParamArray.

Pour accéder à l'une des valeurs d'un tableau de paramètres

  1. Dans le code de procédure, déterminez la longueur du tableau passée au tableau de paramètres en appelant le UBound, fonction (Visual Basic) sur le nom de tableau de paramètres.

  2. Dans une instruction exécutable dans le code de procédure, faites suivre le nom de tableau de paramètres par un indice entre parenthèses. Cet indice doit être compris entre 0 et la limite supérieure retournées par UBound.

Note de sécurité :

Si vous travaillez dans un tableau dont la taille peut être indéfinie, vous risquez de saturer la capacité interne de votre application. Si vous acceptez un tableau de paramètres à partir du code appelant, vous devez tester sa longueur et prendre des mesures appropriées s'il est trop grand pour votre application.

Exemple

L'exemple suivant définit une procédure avec un tableau de paramètres, et renvoie les valeurs de tous les éléments de tableau passés au tableau de paramètres.

Sub studentScores(ByVal name As String, ByVal ParamArray scores() As String)
    Debug.WriteLine("Scores for " & name & ":" & vbCrLf)
    ' Use UBound to determine largest subscript of the array.
    For i As Integer = 0 To UBound(scores, 1)
        Debug.WriteLine("Score " & i & ": " & scores(i))
    Next i
End Sub

Les exemples suivants montrent des appels classiques à studentScores.

Call studentScores("Anne", "10", "26", "32", "15", "22", "24", "16")
Call studentScores("Mary", "High", "Low", "Average", "High")
Dim JohnScores() As String = {"35", "Absent", "21", "30"}
Call studentScores("John", JohnScores)

Compilation du code

Assurez-vous que le ParamArray est le dernier paramètre dans la liste de paramètres, et qu'aucun des paramètres précédents n'est déclaré Optional.

Voir aussi

Tâches

Comment : appeler une procédure qui accepte un nombre indéfini de paramètres

Concepts

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

Paramètres facultatifs

Surcharge de procédure

Vérification du type dans Visual Basic

Référence

ByVal

ParamArray

Autres ressources

Tableaux dans Visual Basic