Procedure: Een procedure overbelasten waarvoor een onbeperkt aantal parameters (Visual Basic) nodig is
Als een procedure een parameter ParamArray heeft, kunt u geen overbelaste versie definiëren die een eendimensionale matrix voor de parametermatrix gebruikt. Zie 'Impliciete overbelastingen voor een parameter ParamArray' in Overwegingen bij overbelastingsprocedures voor meer informatie.
Een procedure overbelasten die een variabel aantal parameters gebruikt
Controleer of de procedure en het aanroepen van codelogica meer profiteren van overbelaste versies dan van een
ParamArray
parameter. Zie 'Overloads and ParamArrays' in Considerations in Overloading Procedures.Bepaal welke aantallen opgegeven waarden de procedure moet accepteren in het variabele deel van de parameterlijst. Dit kan het geval zijn van geen waarde, en het kan het geval zijn van één eendimensionale matrix.
Schrijf voor elk acceptabel aantal opgegeven waarden een
Sub
ofFunction
declaratie-instructie die de bijbehorende parameterlijst definieert. Gebruik hetOptional
of hetParamArray
trefwoord in deze overbelaste versie niet.In elke declaratie gaat u vooraf aan het
Sub
ofFunction
trefwoord met het trefwoord Overloads .Schrijf na elke declaratie de procedurecode die moet worden uitgevoerd wanneer de aanroepende code waarden levert die overeenkomen met de parameterlijst van die declaratie.
Beëindig elke procedure met de
End Sub
ofEnd Function
instructie indien van toepassing.
Opmerking
In het volgende voorbeeld ziet u een procedure die is gedefinieerd met een parameter ParamArray en vervolgens een equivalente set overbelaste procedures.
Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.
U kunt een dergelijke procedure niet overbelasten met een parameterlijst die een eendimensionale matrix gebruikt voor de parametermatrix. U kunt echter de handtekeningen van de andere impliciete overbelastingen gebruiken. De volgende declaraties illustreren dit.
' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)
De code in de overbelaste versies hoeft niet te testen of de aanroepende code een of meer waarden voor de ParamArray
parameter heeft opgegeven, of zo ja, hoeveel. Visual Basic geeft het besturingselement door aan de versie die overeenkomt met de lijst met aanroepende argumenten.
De code compileren
Omdat een procedure met een ParamArray
parameter gelijk is aan een set overbelaste versies, kunt u een dergelijke procedure niet overbelasten met een parameterlijst die overeenkomt met een van deze impliciete overbelastingen. Zie Overwegingen bij overbelastingsprocedures voor meer informatie.
.NET Framework-beveiliging
Wanneer u te maken krijgt met een matrix die voor onbepaalde tijd groot kan zijn, bestaat het risico dat een bepaalde interne capaciteit van uw toepassing wordt overschreden. Als u een parametermatrix accepteert, moet u testen op de lengte van de matrix die door de aanroepcode is doorgegeven en moet u de juiste stappen uitvoeren als deze te groot is voor uw toepassing.
Zie ook
- Procedures
- Procedureparameters en argumenten
- Optionele parameters
- Parametermatrices
- Overbelasting van procedure
- Procedures voor probleemoplossing
- Procedure: Meerdere versies van een procedure definiëren
- Procedure: Een overbelaste procedure aanroepen
- Procedure: Een procedure overbelasten die optionele parameters gebruikt
- Oplossing van overbelasting