Unterprozeduren (Visual Basic)

Eine Sub Prozedur ist eine Reihe von Visual Basic-Anweisungen, die von den Sub Anweisungen und End Sub eingeschlossen werden. Die Sub Prozedur führt eine Aufgabe aus und gibt dann die Steuerung an den aufrufenden Code zurück, gibt jedoch keinen Wert an den aufrufenden Code zurück.

Jedes Mal, wenn die Prozedur aufgerufen wird, werden ihre -Anweisungen ausgeführt, beginnend mit der ersten ausführbaren Anweisung nach der Sub -Anweisung und enden mit der ersten End Sub, Exit Sub- oder Return -Anweisung.

Sie können eine Sub Prozedur in Modulen, Klassen und Strukturen definieren. Standardmäßig ist Publicdies , 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. Der Begriff Methode beschreibt eine Sub - oder Function -Prozedur, auf die von außerhalb des definierenden Moduls, der Klasse oder der Struktur zugegriffen wird. Weitere Informationen finden Sie unter Prozeduren.

Eine Sub Prozedur kann Argumente wie Konstanten, Variablen oder Ausdrücke annehmen, die vom aufrufenden Code an sie übergeben werden.

Deklarationssyntax

Die Syntax zum Deklarieren einer Sub Prozedur lautet wie folgt:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

Der modifiers kann Zugriffsebene und Informationen zum Überladen, Überschreiben, Freigeben und Schattieren angeben. Weitere Informationen finden Sie unter Sub-Anweisung.

Parameterdeklaration

Sie deklarieren jeden Prozedurparameter ähnlich wie eine Variable, indem Sie den Parameternamen und den Datentyp angeben. Sie können auch den Übergabemechanismus angeben und angeben, ob der Parameter optional oder ein Parameterarray ist.

Die Syntax für jeden Parameter in der Parameterliste lautet wie folgt:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

Wenn der Parameter optional ist, müssen Sie auch einen Standardwert als Teil seiner Deklaration angeben. Die Syntax zum Angeben eines Standardwerts lautet wie folgt:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

Parameter als lokale Variablen

Wenn die Steuerung an die Prozedur übergeben wird, wird jeder Parameter als lokale Variable behandelt. Dies bedeutet, dass seine Lebensdauer mit der des Verfahrens identisch ist, und sein Geltungsbereich ist das gesamte Verfahren.

Aufrufen der Syntax

Sie rufen eine Sub Prozedur explizit mit einer eigenständigen aufrufenden Anweisung auf. Sie können sie nicht aufrufen, indem Sie ihren Namen in einem Ausdruck verwenden. 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 Verwendung des Call Schlüsselworts ist optional, wird jedoch nicht empfohlen.

Die Syntax für einen Aufruf einer Sub Prozedur lautet wie folgt:

[Call] SubName[(argumentlist)]

Sie können eine Sub Methode von außerhalb der Klasse aufrufen, die sie definiert. Zunächst müssen Sie das New Schlüsselwort verwenden, um eine Instanz der -Klasse zu erstellen, oder eine Methode aufrufen, die eine Instanz der -Klasse zurückgibt. Weitere Informationen finden Sie unter Neuer Operator. Anschließend können Sie die folgende Syntax verwenden, um die Sub -Methode für das Instanzobjekt aufzurufen:

object.MethodName[(argumentList)]

Abbildung der Deklaration und des Aufrufs

Das folgende Sub Verfahren teilt dem Computeroperator mit, welche Aufgabe die Anwendung ausführen wird, und zeigt auch einen Zeitstempel an. Anstatt diesen Code zu Beginn jeder Aufgabe zu duplizieren, ruft tellOperator die Anwendung einfach von verschiedenen Speicherorten auf. Jeder Aufruf übergibt eine Zeichenfolge im Argument, die task die gestartete Aufgabe identifiziert.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

Das folgende Beispiel zeigt einen typischen Aufruf von tellOperator.

tellOperator("file update")

Weitere Informationen