Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si une procédure a un paramètre ParamArray , vous ne pouvez pas définir une version surchargée prenant un tableau unidimensionnel pour le tableau de paramètres. Pour plus d’informations, consultez « Surcharges implicites pour un paramètre ParamArray » dans Considérations relatives aux procédures de surcharge.
Pour surcharger une procédure qui prend un nombre variable de paramètres
Assurez-vous que la procédure et la logique d'appel de code bénéficient davantage de versions surchargées que d'un paramètre
ParamArray
. Consultez « Surcharges et ParamArrays » dans Considérations liées à la surcharge des procédures.Déterminez les nombres de valeurs fournies que la procédure doit accepter dans la partie variable de la liste de paramètres. Cela peut inclure le cas d’aucune valeur et peut inclure le cas d’un tableau unidimensionnel unique.
Pour chaque nombre acceptable de valeurs fournies, écrivez une
Sub
instruction ouFunction
une instruction de déclaration qui définit la liste de paramètres correspondante. N’utilisez ni le mot cléOptional
ni le mot cléParamArray
dans cette version surchargée.Dans chaque déclaration, précédez le mot clé
Sub
ouFunction
par le mot clé Overloads.Après chaque déclaration, écrivez le code de procédure qui doit s’exécuter lorsque le code appelant fournit des valeurs correspondant à la liste des paramètres de cette déclaration.
Terminez chaque procédure avec l’instruction
End Sub
ouEnd Function
le cas échéant.
Exemple :
L’exemple suivant montre une procédure définie avec un paramètre ParamArray , puis un ensemble équivalent de procédures surchargées.
Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.
Vous ne pouvez pas surcharger une telle procédure avec une liste de paramètres qui prend un tableau unidimensionnel pour le tableau de paramètres. Toutefois, vous pouvez utiliser les signatures des autres surcharges implicites. Les déclarations suivantes illustrent cela.
' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)
Le code dans les versions surchargées n’a pas besoin de tester si le code appelant a fourni une ou plusieurs valeurs pour le ParamArray
paramètre, ou si c’est le cas, combien. Visual Basic passe le contrôle à la version correspondant à la liste des arguments appelants.
Compiler le code
Étant donné qu’une procédure avec un ParamArray
paramètre équivaut à un ensemble de versions surchargées, vous ne pouvez pas surcharger une telle procédure avec une liste de paramètres correspondant à l’une de ces surcharges implicites. Pour en savoir plus, consultez Considérations liées à la surcharge des procédures.
Sécurité du .NET Framework
Chaque fois que vous traitez un tableau qui peut être indéfiniment volumineux, il existe un risque de dépasser une limite interne de votre application. Si vous acceptez un tableau de paramètres, vous devez tester la longueur du tableau passé au code appelant et prendre les mesures appropriées si elle est trop volumineuse pour votre application.
Voir aussi
- Procédures
- Paramètres et arguments d’une procédure
- paramètres facultatifs
- matrices de paramètres
- Surcharge des procédures
- procédures de résolution des problèmes
- Comment : définir plusieurs versions d’une procédure
- Comment appeler une procédure surchargée
- Comment : surcharger une procédure qui accepte des paramètres facultatifs
- Résolution de surcharge