Delen via


Instructies: Een procedure overbelasten die optionele parameters bevat (Visual Basic)

Als een procedure een of meer optionele parameters bevat, kunt u geen overbelaste versie definiëren die overeenkomt met een van de impliciete overbelastingen. Zie 'Impliciete overbelastingen voor optionele parameters' in overwegingen bij overbelastingsprocedures voor meer informatie.

Eén optionele parameter

Een procedure overbelasten waarvoor één optionele parameter nodig is

  1. Schrijf een Sub- of Function-verklaringsinstructie die de optionele parameter in de parameterlijst bevat. Gebruik het Optional trefwoord niet in deze overbelaste versie.

  2. Laat het Sub of Function trefwoord voorafgaan door het trefwoord Overloads.

  3. Schrijf de procedurecode die moet worden uitgevoerd wanneer de aanroepende code het optionele argument levert.

  4. Beëindig de procedure met de End Sub of End Function instructie indien van toepassing.

  5. Schrijf een tweede declaratie-instructie die identiek is aan de eerste declaratie, behalve dat deze niet de optionele parameter in de parameterlijst bevat.

  6. Schrijf de procedurecode die moet worden uitgevoerd wanneer de aanroepcode het optionele argument niet levert. Beëindig de procedure met de End Sub of End Function instructie indien van toepassing.

    In het volgende voorbeeld ziet u een procedure die is gedefinieerd met een optionele parameter, een equivalente set van twee overbelaste procedures en tot slot voorbeelden van ongeldige en geldige overbelaste versies.

    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)
    

Meerdere optionele parameters

Voor een procedure met meer dan één optionele parameter hebt u normaal gesproken meer dan twee overbelaste versies nodig. Als er bijvoorbeeld twee optionele parameters zijn en de aanroepende code elk afzonderlijk van de andere kan leveren of weglaten, hebt u vier overbelaste versies nodig, één voor elke mogelijke combinatie van opgegeven argumenten.

Naarmate het aantal optionele parameters toeneemt, neemt de complexiteit van de overbelasting toe. Tenzij bepaalde combinaties van opgegeven argumenten niet acceptabel zijn, hebt u voor N optionele parameters 2 ^ N overbelaste versies nodig. Afhankelijk van de aard van de procedure kan het zijn dat de duidelijkheid van logica de extra inspanning rechtvaardigt om alle overbelaste versies te definiëren.

Een procedure overbelasten waarvoor meer dan één optionele parameter nodig is

  1. Bepaal welke combinaties van opgegeven optionele argumenten acceptabel zijn voor de logica van de procedure. Er kan een onacceptabele combinatie ontstaan als één optionele parameter afhankelijk is van een andere. Als een parameter bijvoorbeeld de naam van een persoon accepteert en een andere parameter de leeftijd van de persoon accepteert, is een combinatie van argumenten die de leeftijd opgeven maar de naam weglaat onaanvaardbaar.

  2. Schrijf voor elke acceptabele combinatie van opgegeven optionele argumenten een Sub of Function declaratie-instructie die de bijbehorende parameterlijst definieert. Gebruik het Optional trefwoord niet.

  3. Plaats in elke declaratie het sleutelwoord Sub vóór het Function of sleutelwoord.

  4. Schrijf na elke declaratie de procedurecode die moet worden uitgevoerd wanneer de aanroepende code een lijst met argumenten levert die overeenkomt met de parameterlijst van die declaratie.

  5. Beëindig elke procedure met de End Sub of End Function instructie indien van toepassing.

Zie ook