Funktionsprozeduren (Visual Basic)
Eine Function
Prozedur ist eine Reihe von Visual Basic-Anweisungen, die von den Function
Anweisungen und End Function
eingeschlossen werden. Die Function
Prozedur führt eine Aufgabe aus und gibt dann die Steuerung an den aufrufenden Code zurück. Wenn das Steuerelement zurückgegeben wird, wird auch ein Wert an den aufrufenden Code zurückgegeben.
Jedes Mal, wenn die Prozedur aufgerufen wird, werden ihre Anweisungen ausgeführt, beginnend mit der ersten ausführbaren Anweisung nach der Function
Anweisung und enden mit der ersten End Function
, Exit Function
oder Return
gefundenen Anweisung.
Sie können eine Function
Prozedur in einem Modul, einer Klasse oder einer Struktur definieren. Dies 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 sie definiert haben.
Eine Function
Prozedur kann Argumente wie Konstanten, Variablen oder Ausdrücke annehmen, die vom aufrufenden Code an sie übergeben werden.
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 zum Überladen, Überschreiben, Freigeben und Schatten angeben. Weitere Informationen finden Sie unter Function Statement.
Sie deklarieren jeden Parameter auf die gleiche Weise wie für Unterprozeduren.
Datentyp
Jede Function
Prozedur hat einen Datentyp, genau wie jede Variable. Dieser Datentyp wird durch die As
-Klausel in der Function
-Anweisung angegeben und bestimmt den Datentyp des Werts, den die Funktion an den aufrufenden Code zurückgibt. 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 Function Statement.
Zurückgeben von Werten
Der Wert, den eine Function
Prozedur an den aufrufenden Code zurücksendet, wird als Rückgabewert bezeichnet. Die Prozedur gibt diesen Wert auf eine von zwei Arten zurück:
Sie verwendet die
Return
-Anweisung, um den Rückgabewert anzugeben, und gibt das Steuerelement 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
Sie weist ihrem eigenen Funktionsnamen in einer oder mehreren Anweisungen der Prozedur einen Wert zu. Das Steuerelement kehrt erst dann an das aufrufende Programm zurück, wenn eine
Exit Function
- oderEnd Function
-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 zum Funktionsnamen besteht darin, dass das Steuerelement erst dann von der Prozedur zurückgegeben wird, wenn eine Exit Function
- oder End Function
-Anweisung gefunden wird. Dadurch können Sie einen vorläufigen Wert zuweisen und ihn bei Bedarf später anpassen.
Weitere Informationen zum Zurückgeben von Werten finden Sie unter Function Statement. Informationen zum Zurückgeben von Arrays finden Sie unter Arrays.
Syntax aufrufen
Sie rufen eine Function
Prozedur auf, indem Sie den Namen und die Argumente entweder auf der rechten Seite einer Zuweisungsanweisung oder in einen 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 weglassen.
Die Syntax für einen Aufruf einer Function
Prozedur lautet 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. Andernfalls werden alle Aktionen der Funktion ausgeführt, aber der Rückgabewert wird ignoriert. MsgBox wird häufig auf diese Weise genannt.
Abbildung der Deklaration und des Aufrufs
Das folgende Function
Verfahren berechnet die längste Seite oder Hypotenuse eines rechten Dreiecks unter Berücksichtigung der Werte für die anderen beiden Seiten.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
Das folgende Beispiel zeigt einen typischen Aufruf von hypotenuse
.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)
Weitere Informationen
- Vorgehensweisen
- Sub-Prozeduren
- Eigenschaftenprozeduren
- Operatorprozeduren
- Parameter und Argumente von Prozeduren
- Function-Anweisung
- Vorgehensweise: Erstellen einer Prozedur, die einen Wert zurückgibt
- Vorgehensweise: Abrufen eines Werts aus einer Prozedur
- Vorgehensweise: Aufrufen einer Prozedur, die einen Wert zurückgibt