Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En Function procedur är en serie Visual Basic-instruktioner som omges av instruktionen Function och End Function . Proceduren Function utför en uppgift och returnerar sedan kontrollen till den anropande koden. När kontrollen returneras returneras även ett värde till den anropande koden.
Varje gång proceduren anropas körs dess instruktioner, som börjar med den första körbara instruktionen efter -instruktionen Function och slutar med den första End Function, Exit Functioneller Return -instruktionen påträffades.
Du kan definiera en Function procedur i en modul, klass eller struktur. Det är Public som standard, vilket innebär att du kan anropa det var som helst i ditt program som har åtkomst till den modul, klass eller struktur som du definierade den i.
En Function procedur kan ta argument, till exempel konstanter, variabler eller uttryck, som skickas till den av den anropande koden.
Deklarationssyntax
Syntaxen för att deklarera en Function procedur är följande:
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
[Statements]
End Function
Modifierarna kan ange åtkomstnivå och information om överlagring, åsidosättande, delning och skuggning. Mer information finns i Funktionsinstrukation.
Du deklarerar varje parameter på samma sätt som för underprocedurer.
Datatyp
Varje Function procedur har en datatyp, precis som varje variabel gör. Den här datatypen anges av As -satsen i -instruktionen Function och avgör datatypen för det värde som funktionen returnerar till den anropande koden. Följande exempeldeklarationer illustrerar detta.
Function Yesterday() As Date
End Function
Function FindSqrt(radicand As Single) As Single
End Function
Mer information finns i "Delar" i Funktionsinstrukation.
Returnerar värden
Värdet som en Function procedur skickar tillbaka till den anropande koden kallas för dess returvärde. Proceduren returnerar det här värdet på något av två sätt:
Den använder -instruktionen
Returnför att ange returvärdet och returnerar kontrollen direkt till det anropande programmet. I följande exempel visas detta.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 FunctionDet tilldelar ett värde till sitt eget funktionsnamn i en eller flera instruktioner i proceduren. Kontrollen återgår inte till det anropande programmet förrän en -instruktion eller
Exit Function-End Functioninstruktion har körts. I följande exempel visas detta.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
Fördelen med att tilldela returvärdet till funktionsnamnet är att kontrollen inte returneras från proceduren förrän den stöter på en Exit Function -instruktion End Function . På så sätt kan du tilldela ett preliminärt värde och justera det senare om det behövs.
Mer information om hur du returnerar värden finns i Funktionsinstruktur. Information om hur du returnerar matriser finns i Matriser.
Anropande syntax
Du anropar en Function procedur genom att inkludera dess namn och argument på höger sida av en tilldelningsinstruklage eller i ett uttryck. Du måste ange värden för alla argument som inte är valfria och du måste omsluta argumentlistan inom parenteser. Om inga argument anges kan du utelämna parenteserna.
Syntaxen för ett anrop till en Function procedur är följande.
Argumentlista för lvalue=functionname[()]
If ((
functionname[(argumentlist)] / 3) <=uttryck) Then
När du anropar en Function procedur behöver du inte använda dess returvärde. Om du inte gör det utförs alla åtgärder i funktionen, men returvärdet ignoreras.
MsgBox kallas ofta på detta sätt.
Bild av deklaration och anrop
Följande Function procedur beräknar den längsta sidan, eller hypotenuse, av en höger triangel, med tanke på värdena för de andra två sidorna.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
I följande exempel visas ett typiskt anrop till hypotenuse.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)