Comment : surcharger une procédure qui accepte des paramètres optionnels (Visual Basic)
Si une procédure possède un ou plusieurs paramètres Optional (Visual Basic), vous ne pouvez pas définir de version surchargée correspondant une de ses surcharges implicites.Pour plus d'informations, consultez des "Implicit Overloads for Optional Parameters" dans Considérations sur les surcharges de procédures (Visual Basic).
Paramètre facultatif unique
Pour surcharger une procédure qui accepte un paramètre facultatif
Écrivez une instruction de déclaration Sub ou Function qui inclut le paramètre facultatif dans la liste de paramètres.N'utilisez pas le mot clé Optional dans cette version surchargée.
Faites précéder le mot clé Sub ou Function du mot clé Overloads (Visual Basic).
Écrivez le code de procédure qui doit être exécuté lorsque le code appelant fournit l'argument facultatif.
Terminez la procédure par l'instruction End Sub ou End Function, selon le cas.
Écrivez une deuxième instruction de déclaration qui est identique à la première déclaration, excepté qu'elle n'inclut pas le paramètre facultatif dans la liste de paramètres.
Écrivez le code de procédure qui doit être exécuté lorsque le code appelant ne fournit pas l'argument facultatif.Terminez la procédure par l'instruction End Sub ou End Function, selon le cas.
L'exemple suivant affiche une procédure définie par un paramètre facultatif, un jeu d'équivalents de deux procédures surchargées et enfin des exemples de versions surchargées non valides et valides.
Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
' The preceding definition is equivalent to the following two overloads. ' Overloads Sub q(ByVal b As Byte) ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
' Therefore, the following overload is not valid because the signature is already in use. ' Overloads Sub q(ByVal c As Byte, ByVal k As Long) ' The following overload uses a different signature and is valid. Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
Paramètres facultatifs multiples
Pour créer une procédure disposant de plusieurs paramètres facultatifs, vous avez normalement besoin de plus de deux versions surchargées.Par exemple, s'il y a deux paramètres optionnels, et le code appelant peut fournir ou omettre indépendamment chacun de l'autre, vous avez besoin de quatre versions surchargées, une pour chaque combinaison possible d'arguments fournis.
Comme le nombre de paramètres facultatifs augmente, la complexité de la surcharge augmente également.À moins que certaines combinaisons d'arguments fournies ne soient pas acceptables, pour N paramètres facultatifs, vous devez disposer de 2 ^ N versions surchargées.Selon la nature de la procédure, vous pouvez trouver que la clarté de logique justifie l'effort supplémentaire de définition de toutes les versions surchargées.
Pour surcharger une procédure qui accepte plusieurs paramètres facultatifs
Déterminez quelles combinaisons d'arguments facultatifs fournis sont acceptables par rapport à la logique de la procédure.Une combinaison inacceptable peut survenir si un paramètre facultatif dépend d'un autre.Par exemple, si un paramètre accepte le nom du conjoint et qu'un autre accepte son âge, une combinaison d'arguments fournissant l'âge, mais omettant le nom est inacceptable.
Pour chaque combinaison acceptable d'arguments facultatifs fournis, écrivez une instruction de déclaration Sub ou Function qui définit la liste de paramètres correspondante.N'utilisez pas le mot clé Optional.
Dans chaque déclaration, précédez le mot clé Sub ou Function par le mot clé Overloads (Visual Basic).
Après chaque déclaration, écrivez le code de procédure à exécuter lorsque le code appelant fournit une liste d'arguments correspondant à la liste de paramètres de cette déclaration.
Terminez chaque procédure par l'instruction End Sub ou End Function, selon le cas.
Voir aussi
Tâches
Procédures de dépannage (Visual Basic)
Comment : définir plusieurs versions d'une procédure (Visual Basic)
Comment : appeler une procédure surchargée (Visual Basic)
Comment : surcharger une procédure qui accepte un nombre indéfini de paramètres (Visual Basic)
Concepts
Paramètres et arguments d'une procédure (Visual Basic)
Paramètres facultatifs (Visual Basic)
Tableaux de paramètres (Visual Basic)