Sdílet prostřednictvím


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 Functionnebo 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 nebo End 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 ((výraz functionname[(argumentlist)] / 3) <=) 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)

Viz také