Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Si une procédure a un ou plusieurs paramètres facultatifs , vous ne pouvez pas définir une version surchargée correspondant à l’une de ses surcharges implicites. Pour plus d’informations, consultez « Surcharges implicites pour les paramètres facultatifs » dans Considérations relatives aux procédures de surcharge.
Un paramètre facultatif
Pour surcharger une procédure qui prend un paramètre facultatif
Écrivez une instruction de déclaration
SubouFunctionqui inclut le paramètre facultatif dans la liste des paramètres. N’utilisez pas leOptionalmot clé dans cette version surchargée.Précédez le mot clé
SubouFunctionavec le mot clé Overloads.Écrivez le code de procédure qui doit s’exécuter lorsque le code appelant fournit l’argument facultatif.
Terminez la procédure avec l’instruction
End SubouEnd Functionle cas échéant.Écrivez une deuxième instruction de déclaration identique à la première déclaration, sauf qu’elle n’inclut pas le paramètre facultatif dans la liste des paramètres.
Écrivez le code de procédure qui doit s’exécuter lorsque le code appelant ne fournit pas l’argument facultatif. Terminez la procédure avec l’instruction
End SubouEnd Functionle cas échéant.L’exemple suivant montre une procédure définie avec un paramètre facultatif, un ensemble équivalent 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 une procédure avec plusieurs paramètres facultatifs, vous avez normalement besoin de plus de deux versions surchargées. Par exemple, s’il existe deux paramètres facultatifs et que le code appelant peut fournir ou omettre chacun d’eux indépendamment de l’autre, vous avez besoin de quatre versions surchargées, une pour chaque combinaison possible d’arguments fournis.
À mesure que le nombre de paramètres facultatifs augmente, la complexité de la surcharge augmente. Sauf si certaines combinaisons d’arguments fournis ne sont pas acceptables, pour les paramètres facultatifs N, vous avez besoin de versions surchargées de 2 ^ N. Selon la nature de la procédure, vous pouvez constater que la clarté de la 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 pour 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 d’une personne et qu’un autre accepte l’âge de la personne, une combinaison d’arguments fournissant l’âge, mais l’omission du nom est inacceptable.
Pour chaque combinaison acceptable d’arguments facultatifs fournis, écrivez une
Subinstruction ouFunctionune instruction de déclaration qui définit la liste de paramètres correspondante. N’utilisez pas leOptionalmot clé.Dans chaque déclaration, précédez le mot clé
SubouFunctionpar 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 une liste d’arguments correspondant à la liste des paramètres de cette déclaration.
Terminez chaque procédure avec l’instruction
End SubouEnd Functionle cas échéant.
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 prend un nombre indéfini de paramètres
- Résolution de surcharge