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 Function
oder 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 Function
End 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
- 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