Functieprocedures (Visual Basic)
Een Function
procedure is een reeks Visual Basic-instructies die zijn ingesloten door de Function
en-instructies End Function
. De Function
procedure voert een taak uit en retourneert vervolgens het besturingselement naar de aanroepende code. Wanneer het besturingselement retourneert, wordt ook een waarde geretourneerd naar de aanroepende code.
Telkens wanneer de procedure wordt aangeroepen, worden de instructies uitgevoerd, te beginnen met de eerste uitvoerbare instructie na de Function
instructie en eindigend met de eerste End Function
, Exit Function
of Return
instructie aangetroffen.
U kunt een Function
procedure definiƫren in een module, klasse of structuur. Dit betekent Public
standaard dat u deze kunt aanroepen vanaf elke locatie in uw toepassing die toegang heeft tot de module, klasse of structuur waarin u deze hebt gedefinieerd.
Een Function
procedure kan argumenten aannemen, zoals constanten, variabelen of expressies, die worden doorgegeven door de aanroepende code.
Syntaxis van declaratie
De syntaxis voor het declareren van een Function
procedure is als volgt:
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
[Statements]
End Function
De modifiers kunnen toegangsniveau en informatie over overbelasting, overschrijven, delen en schaduw opgeven. Zie Functie-instructie voor meer informatie.
U declareert elke parameter op dezelfde manier als voor subprocedures.
Gegevenstype
Elke Function
procedure heeft een gegevenstype, net zoals elke variabele. Dit gegevenstype wordt opgegeven door de As
component in de Function
instructie en bepaalt het gegevenstype van de waarde die de functie retourneert naar de aanroepende code. In de volgende voorbeelddeclaraties ziet u dit.
Function Yesterday() As Date
End Function
Function FindSqrt(radicand As Single) As Single
End Function
Zie Onderdelen in functie-instructie voor meer informatie.
Geretourneerde waarden
De waarde die een Function
procedure terugstuurt naar de aanroepende code wordt de retourwaarde genoemd. De procedure retourneert deze waarde op twee manieren:
De instructie gebruikt de
Return
instructie om de retourwaarde op te geven en retourneert direct het besturingselement naar het aanroepende programma. In het volgende voorbeeld ziet u dit.Function FunctionName [(ParameterList)] As ReturnType ' The following statement immediately transfers control back ' to the calling code and returns the value of Expression. Return Expression End Function
Er wordt een waarde toegewezen aan een eigen functienaam in een of meer instructies van de procedure. Control keert pas terug naar het aanroepende programma nadat een
Exit Function
ofEnd Function
instructie is uitgevoerd. In het volgende voorbeeld ziet u dit.Function FunctionName [(ParameterList)] As ReturnType ' The following statement does not transfer control back to the calling code. FunctionName = Expression ' When control returns to the calling code, Expression is the return value. End Function
Het voordeel van het toewijzen van de retourwaarde aan de functienaam is dat het besturingselement niet wordt geretourneerd vanuit de procedure totdat er een Exit Function
of-instructie End Function
wordt aangeroepen. Hiermee kunt u een voorlopige waarde toewijzen en deze later zo nodig aanpassen.
Zie Functie-instructie voor meer informatie over het retourneren van waarden. Zie Matrices voor informatie over het retourneren van matrices.
Aanroepende syntaxis
U roept een Function
procedure aan door de naam en argumenten ervan op te halen aan de rechterkant van een toewijzingsinstructie of in een expressie. U moet waarden opgeven voor alle argumenten die niet optioneel zijn en u moet de lijst met argumenten tussen haakjes insluiten. Als er geen argumenten worden opgegeven, kunt u eventueel de haakjes weglaten.
De syntaxis voor een aanroep naar een Function
procedure is als volgt.
Argumentlijst voor de functienaam [(
lvalue=
)]
If ((
functionname [(
argumentlijst )] / 3) <=
uitdrukking ) Then
Wanneer u een Function
procedure aanroept, hoeft u de retourwaarde niet te gebruiken. Als u dit niet doet, worden alle acties van de functie uitgevoerd, maar wordt de retourwaarde genegeerd. MsgBox wordt vaak op deze manier aangeroepen.
Afbeelding van declaratie en aanroep
Met de volgende Function
procedure wordt de langste zijde of hypotenuse van een driehoek rechts berekend op basis van de waarden voor de andere twee zijden.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
In het volgende voorbeeld ziet u een typische aanroep naar hypotenuse
.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)