Partager via


Tableaux de paramètres (Visual Basic)

En règle générale, vous ne pouvez pas appeler une procédure avec un nombre d'arguments supérieur à celui de la déclaration de procédure. Lorsque vous avez besoin d'un nombre indéfini d'arguments, vous pouvez déclarer un tableau de paramètres, lequel permet à la procédure d'accepter un tableau de valeurs comme paramètre. Il n'est pas nécessaire de connaître le nombre d'éléments contenus dans le tableau de paramètres lorsque vous définissez la procédure. La taille du tableau est déterminée individuellement par chaque appel à la procédure.

Déclaration d'un ParamArray

Vous devez utiliser le mot clé ParamArray (Visual Basic) pour désigner un tableau de paramètres dans la liste des paramètres. Les règles suivantes s'appliquent :

  • Une procédure ne peut définir qu'un tableau de paramètres, qui doit représenter le dernier paramètre dans la définition de la procédure.

  • Le tableau de paramètres doit être passé par valeur. En programmation, il est conseillé d'inclure explicitement le mot clé Byval (Visual Basic) dans la définition de la procédure.

  • Le tableau de paramètres est automatiquement facultatif. Sa valeur par défaut est un tableau unidimensionnel vide dont le type d'élément est tableau de paramètres.

  • Tous les paramètres précédant le tableau de paramètres sont requis. Le tableau de paramètres doit être le seul paramètre facultatif.

Pour plus d'informations, consultez Comment : définir une procédure avec un nombre indéfini de paramètres (Visual Basic).

Appel d'un ParamArray

Lorsque vous appelez une procédure qui définit un tableau de paramètres, vous pouvez fournir l'argument de l'une des manières suivantes:

  • Aucune valeur, ce qui signifie que vous pouvez omettre l'argument ParamArray (Visual Basic). Dans ce cas, un tableau vide est passé à la procédure. Vous pouvez également passer le mot clé Nothing (Visual Basic), qui produit le même effet.

  • Liste d'un nombre arbitraire d'arguments séparés par des virgules. Le type de données de chaque argument doit être implicitement convertible en type d'élément ParamArray.

  • Tableau avec le même type d'élément que celui du tableau de paramètres.

Dans tous les cas, le code de la procédure traite 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 plus d'informations, consultez Comment : appeler une procédure qui accepte un nombre indéfini de paramètres (Visual Basic).

Note de sécurité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, vous devez tester la taille du tableau auquel le code appelant est passé. Effectuez des étapes appropriées si le tableau est trop grand pour votre application. Pour plus d'informations, consultez Tableaux dans Visual Basic.

Exemple

Description

L'exemple suivant montre comment définir et appeller la fonction calcSum. Le modificateur ParamArray du paramètre args permet à la fonction d'accepter un nombre variable d'arguments.

Code

Module Module1

    Sub Main()
        ' In the following function call, calcSum's local variables 
        ' are assigned the following values: args(0) = 4, args(1) = 3, 
        ' and so on. The displayed sum is 10.
        Dim returnedValue As Double = calcSum(4, 3, 2, 1)
        Console.WriteLine("Sum: " & returnedValue)
        ' Parameter args accepts zero or more arguments. The sum 
        ' displayed by the following statements is 0.
        returnedValue = calcSum()
        Console.WriteLine("Sum: " & returnedValue)
    End Sub

    Public Function calcSum(ByVal ParamArray args() As Double) As Double
        calcSum = 0
        If args.Length <= 0 Then Exit Function
        For i As Integer = 0 To UBound(args, 1)
            calcSum += args(i)
        Next i
    End Function

End Module

Voir aussi

Référence

Optional (Visual Basic)

UBound

Concepts

Procédures dans Visual Basic

Paramètres et arguments d'une procédure (Visual Basic)

Passage d'un argument par valeur et par référence (Visual Basic)

Passage des arguments par position et par nom (Visual Basic)

Paramètres facultatifs (Visual Basic)

Surcharge de procédure (Visual Basic)

Vérification du type dans Visual Basic

Tableaux dans Visual Basic