Delen via


Procedure: Een procedure overbelasten die optionele parameters gebruikt (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 of Function declaratie-instructie Sub die de optionele parameter in de lijst met parameters bevat. Gebruik het Optional trefwoord niet in deze overbelaste versie.

  2. Voorafgaan aan het Sub of Function trefwoord met 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. In elke declaratie gaat u vooraf aan het Sub of Function trefwoord met het trefwoord Overloads .

  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