Funktionsprozeduren (Visual Basic)

Eine Function Prozedur ist eine Reihe von Visual Basic Anweisungen, die von den Function und End Function Anweisungen eingeschlossen sind. Die Function Prozedur führt eine Aufgabe aus, und gibt dann die Steuerung an den Aufrufcode zurück. Wenn das Steuerelement zurückgegeben wird, gibt er auch einen Wert an den Aufrufcode zurück.

Jedes Mal, wenn die Prozedur aufgerufen wird, werden die Anweisungen ausgeführt, beginnend mit der ersten ausführbaren Anweisung nach der Function Anweisung und enden mit dem ersten End Function, Exit Functionoder Return der zugehörigen Anweisung.

Sie können eine Function Prozedur in einem Modul, einer Klasse oder einer Struktur definieren. Es ist Public standardmäßig, was bedeutet, dass Sie sie von überall in Ihrer Anwendung aufrufen können, die Zugriff auf das Modul, die Klasse oder die Struktur hat, in der Sie es definiert haben.

Eine Function Prozedur kann Argumente, z. B. Konstanten, Variablen oder Ausdrücke, nehmen, die an ihn übergeben werden, durch den Aufrufcode.

Deklarationssyntax

Die Syntax zum Deklarieren einer Function Prozedur lautet wie folgt:

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
    [Statements]
End Function

Die Modifizierer können Zugriffsebene und Informationen zur Überlastung, Außerkraftsetzung, Freigabe und Schattenerstellung angeben. Weitere Informationen finden Sie unter Function-Anweisung.

Sie deklarieren jeden Parameter auf die gleiche Weise wie für Unterprozeduren.

Datentyp

Jede Prozedur verfügt über einen Datentyp, genauso wie jede Function Variable. Dieser Datentyp wird durch die As Klausel in der Function Anweisung angegeben, und es bestimmt den Datentyp des Werts, den die Funktion zurückgibt, an den aufruften Code zurück. Die folgenden Beispieldeklarationen veranschaulichen dies.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

Weitere Informationen finden Sie unter "Parts" in Funktionsausweisung.

Zurückgeben von Werten

Der Wert, den eine Function Prozedur an den Aufrufcode sendet, wird als Rückgabewert bezeichnet. Die Prozedur gibt diesen Wert auf zwei Arten zurück:

  • Es verwendet die Return Anweisung, um den Rückgabewert anzugeben, und gibt die Steuerung sofort an das aufrufende Programm zurück. Dies wird anhand des folgenden Beispiels veranschaulicht.

    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
    
  • Es weist einen Wert einem eigenen Funktionsnamen in einer oder mehreren Anweisungen der Prozedur zu. Das Steuerelement wird erst wieder zum aufrufenden Programm zurückgegeben, bis eine Exit FunctionEnd Function oder eine Anweisung ausgeführt wird. Dies wird anhand des folgenden Beispiels veranschaulicht.

    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
    

Der Vorteil des Zuweisens des Rückgabewerts an den Funktionsnamen besteht darin, dass das Steuerelement nicht von der Prozedur zurückgibt, bis es eine Exit Function oder End Function eine Anweisung auftritt. Dadurch können Sie einen vorläufigen Wert zuweisen und später bei Bedarf anpassen.

Weitere Informationen zum Zurückgeben von Werten finden Sie unter Function-Anweisung. Informationen zum Zurückgeben von Arrays finden Sie unter Arrays.

Aufrufssyntax

Sie rufen eine Function Prozedur auf, indem Sie ihren Namen und Argumente entweder auf der rechten Seite einer Zuordnungsausweisung oder in einem Ausdruck einschließen. Sie müssen Werte für alle Argumente angeben, die nicht optional sind, und Sie müssen die Argumentliste in Klammern einschließen. Wenn keine Argumente angegeben werden, können Sie optional die Klammern auslassen.

Die Syntax für einen Function Aufruf einer Prozedur ist wie folgt.

Lvalue=Functionname[(Argumentlist)]

If ((Functionname[(Argumentlist)] / 3) <=Ausdruck) Then

Wenn Sie eine Function Prozedur aufrufen, müssen Sie den Rückgabewert nicht verwenden. Wenn Sie nicht ausgeführt werden, werden alle Aktionen der Funktion ausgeführt, der Rückgabewert wird jedoch ignoriert. MsgBox wird häufig auf diese Weise aufgerufen.

Abbildung der Deklaration und des Aufrufs

Im folgenden Function Verfahren wird die längste Seite oder Hypotenuse eines rechten Dreiecks berechnet, wobei die Werte für die anderen beiden Seiten angegeben sind.

Function Hypotenuse(side1 As Double, side2 As Double) As Double
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

Im folgenden Beispiel wird ein typischer Aufruf angezeigt hypotenuse.

Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)

Weitere Informationen