Partager via


Comment : surcharger une procédure qui accepte des paramètres optionnels

Mise à jour : novembre 2007

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.

Paramètre facultatif unique

Pour surcharger une procédure qui accepte un paramètre facultatif

  1. É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.

  2. Faites précéder le mot clé Sub ou Function du mot clé Overloads.

  3. Écrivez le code de procédure qui doit être exécuté lorsque le code appelant fournit l'argument facultatif.

  4. Terminez la procédure par l'instruction End Sub ou End Function, selon le cas.

  5. É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.

  6. É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

  1. 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.

  2. 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.

  3. Dans chaque déclaration, précédez le mot clé Sub ou Function par le mot clé Overloads.

  4. 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.

  5. Terminez chaque procédure par l'instruction End Sub ou End Function, selon le cas.

Voir aussi

Tâches

Procédures de dépannage

Comment : définir plusieurs versions d'une procédure

Comment : appeler une procédure surchargée

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

Concepts

Procédures dans Visual Basic

Paramètres et arguments d'une procédure

Paramètres facultatifs

Tableaux de paramètres

Surcharge de procédure

Résolution de surcharge