Comment : surcharger une procédure qui accepte des paramètres optionnels (Visual Basic)

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

  1. Écrivez une instruction de déclaration Sub ou Function qui inclut le paramètre facultatif dans la liste des paramètres. N’utilisez pas le mot clé Optional dans cette version surchargée.

  2. Précédez le mot clé Sub ou Function avec le mot clé Overloads .

  3. Écrivez le code de procédure qui doit s’exécuter lorsque le code appelant fournit l’argument facultatif.

  4. Terminez la procédure avec l’instruction End Sub ou End Function le cas échéant.

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

  6. É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 Sub ou End Function le 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

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

  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, faites précéder le mot clé Sub ou Function par le mot clé Overloads.

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

  5. Terminez chaque procédure avec l’instruction End Sub ou End Function, le cas échéant.

Voir aussi