Delen via


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 Functionof 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 of End 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)

Zie ook