Procedury funkcí (Visual Basic)
Procedura Function
je řada příkazů jazyka Visual Basic uzavřených příkazy Function
a End Function
příkazy. Tento Function
postup provede úlohu a pak vrátí ovládací prvek volajícímu kódu. Když vrátí ovládací prvek, vrátí také hodnotu volajícího kódu.
Pokaždé, když je volána procedura, jeho příkazy se spustí, počínaje prvním spustitelným příkazem za Function
příkazem a končí na první End Function
, Exit Function
nebo Return
příkaz byl zjištěn.
Proceduru Function
můžete definovat v modulu, třídě nebo struktuře. Ve výchozím nastavení to Public
znamená, že ho můžete volat odkudkoli ve vaší aplikaci, která má přístup k modulu, třídě nebo struktuře, ve které jste ho definovali.
Procedura Function
může přijímat argumenty, jako jsou konstanty, proměnné nebo výrazy, které jsou předány volajícím kódem.
Syntaxe deklarace
Syntaxe pro deklarování Function
procedury je následující:
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
[Statements]
End Function
Modifikátory mohou určit úroveň přístupu a informace týkající se přetížení, přepsání, sdílení a stínování. Další informace naleznete v tématu Příkaz funkce.
Každý parametr deklarujete stejným způsobem jako u dílčích procedur.
Datový typ
Každý Function
postup má datový typ, stejně jako každá proměnná. Tento datový typ je určen klauzulí As
v Function
příkazu a určuje datový typ hodnoty, kterou funkce vrátí do volajícího kódu. Toto je znázorněno v následujících ukázkových deklaracích.
Function Yesterday() As Date
End Function
Function FindSqrt(radicand As Single) As Single
End Function
Další informace naleznete v části Části v příkazu funkce.
Vrácení hodnot
Hodnota, kterou procedura Function
odešle zpět volajícímu kódu, se nazývá její návratová hodnota. Procedura vrátí tuto hodnotu jedním ze dvou způsobů:
Pomocí
Return
příkazu určí návratové hodnoty a vrátí ovládací prvek okamžitě volajícímu programu. Toto dokládá následující příklad.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
Přiřadí hodnotu vlastnímu názvu funkce v jednom nebo více příkazech procedury. Ovládací prvek se nevrátí do volajícího programu, dokud
Exit Function
se nespustí příkaz neboEnd Function
příkaz. Toto dokládá následující příklad.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
Výhodou přiřazení návratové hodnoty k názvu funkce je, že ovládací prvek se nevrátí z procedury, dokud nenarazí na příkaz Exit Function
nebo příkaz End Function
. To vám umožní přiřadit předběžnou hodnotu a v případě potřeby ji upravit později.
Další informace o vrácení hodnot naleznete v části Příkaz funkce. Informace o vrácení polí naleznete v tématu Pole.
Syntaxe volání
Proceduru Function
vyvoláte tak, že zahrnete její název a argumenty buď na pravé straně příkazu přiřazení, nebo ve výrazu. Je nutné zadat hodnoty pro všechny argumenty, které nejsou volitelné, a je nutné uzavřít seznam argumentů do závorek. Pokud nejsou zadány žádné argumenty, můžete volitelně vynechat závorky.
Syntaxe volání Function
procedury je následující.
lvalue =
functionname [(
argumentlist )]
If ((
functionname [(
argumentlist )] / 3) <=
výraz ) Then
Při volání Function
procedury nemusíte používat jeho návratovou hodnotu. Pokud ne, všechny akce funkce se provádějí, ale návratová hodnota se ignoruje. MsgBox je často volána tímto způsobem.
Obrázek deklarace a volání
Následující Function
postup vypočítá nejdelší stranu nebo hypotenuse pravého trojúhelníku vzhledem k hodnotám pro ostatní dvě strany.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
Následující příklad ukazuje typické volání hypotenuse
.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)