Prozeduren in Visual Basic
Eine Prozedur ist ein Block von Visual Basic-Anweisungen, die von einer Deklarationsanweisung (Function
, Sub
, Operator
, Get
, Set
) und einer entsprechenden End
-Deklaration umschlossen werden. Alle ausführbaren Anweisungen in Visual Basic müssen sich in einer Prozedur befinden.
Aufrufen einer Prozedur
Sie rufen eine Prozedur an einer anderen Stelle im Code auf. Dies wird als Prozeduraufruf bezeichnet. Wenn die Ausführung der Prozedur abgeschlossen ist, übergibt die Prozedur die Kontrolle wieder an den Code, von dem sie aufgerufen wurde. Dieser Code wird als aufrufender Code bezeichnet. Der aufrufende Code ist eine Anweisung, oder ein Ausdruck in einer Anweisung, die die Prozedur mit einem Namen angibt und dieser die Kontrolle übergibt.
Nach dem Abschluss der Prozedur
Wenn die Prozedur abgeschlossen wurde, übergibt sie die Kontrolle wieder an den aufrufenden Code. Dazu kann sie eine Return-Anweisung, die entsprechende Exit-Anweisung für die Prozedur oder die End-<Schlüsselwort>-Anweisung der Prozedur verwenden. Dann wird die Kontrolle wieder an den aufrufenden Code im Anschluss an die Stelle des Prozeduraufrufs übergeben.
Mit einer
Return
-Anweisung wird die Kontrolle sofort wieder an den aufrufenden Code übergeben. Anweisungen, die hinter derReturn
-Anweisung stehen, werden nicht ausgeführt. Es können sich mehrereReturn
-Anweisungen in derselben Prozedur befinden.Mit einer
Exit Sub
- oderExit Function
-Anweisung wird die Kontrolle sofort wieder an den aufrufenden Code übergeben. Anweisungen, die hinter derExit
-Anweisung stehen, werden nicht ausgeführt. Es können sich mehrereExit
-Anweisungen in derselben Prozedur befinden. Außerdem können sich sowohlReturn
- als auchExit
-Anweisungen in derselben Prozedur befinden.Wenn eine Prozedur weder eine
Return
- noch eineExit
-Anweisung aufweist, schließt sie mit einerEnd Sub
- oderEnd Function
-,End Get
- oderEnd Set
-Anweisung hinter der letzten Anweisung des Texts der Prozedur ab. DieEnd
-Anweisung übergibt die Kontrolle sofort wieder an den aufrufenden Code. Es darf sich nur eineEnd
-Anweisung in einer Prozedur befinden.
Parameter und Argumente
In den meisten Fällen muss eine Prozedur bei jedem Aufruf unterschiedliche Daten verarbeiten. Diese Informationen können Sie im Rahmen eines Prozeduraufrufs an die Prozedur übergeben. Die Prozedur definiert keine oder mehrere Parameter. Diese Parameter stellen jeweils einen Wert dar, der von der Prozedur erwartet wird. Jedem Parameter in der Definition der Prozedur entspricht ein Argument im Prozeduraufruf. Ein Argument stellt einen Wert dar, den Sie an den entsprechenden Parameter in einem gegebenen Prozeduraufruf übergeben.
Prozedurtypen
Visual Basic verwendet mehrere Prozedurtypen:
Sub-Prozeduren führen Aktionen aus, geben jedoch keinen Wert an den aufrufenden Code zurück.
Ereignisbehandlungsprozeduren sind
Sub
-Prozeduren, die als Reaktion auf ein Ereignis ausgeführt werden, das durch eine Benutzeraktion oder durch Auftreten in einem Programm ausgelöst wurde.Function-Prozeduren geben einen Wert an den aufrufenden Code zurück. Bevor sie einen Wert zurückgeben, können sie noch weitere Aktionen ausführen.
Einige in C# geschriebene Funktionen geben einen Verweisrückgabewert zurück. Funktionsaufrufer modifizieren den Rückgabewert. Diese Modifizierung wird durch den Zustand des aufgerufenen Objekts widergespiegelt. Ab Visual Basic 2017 kann Code von Visual Basic Verweisrückgabewerte verarbeiten, auch wenn er einen Wert nicht nach Verweis zurückgeben kann. Weitere Informationen finden Sie unter Verweisrückgabewerte.
Eigenschaftenprozeduren geben Werte von Eigenschaften auf Objekten und Modulen zurück und weisen diese zu.
Operatorprozeduren definieren das Verhalten von Standardoperatoren, wenn mindestens einer der beiden Operanden eine neu definierte Klasse oder Struktur ist.
Generische Prozeduren in Visual Basic definieren zusätzlich zu ihren normalen Parametern mindestens einen Typparameter, damit der aufrufende Code bei jedem Aufruf spezifische Datentypen übergeben kann.
Prozeduren und strukturierter Code
Jede Zeile ausführbaren Codes in Ihrer Anwendung muss sich in einer Prozedur befinden, wie z.B. Main
, calculate
oder Button1_Click
. Wenn Sie große Prozeduren in kleinere austeilen, macht das Ihre Anwendung lesbarer.
Prozeduren sind beim Ausführen von wiederholten oder freigegebenen Aufgaben nützlich. Solche Aufgaben können z.B. häufig verwendete Berechnungen, das Bearbeiten von Text und Steuerelementen und Datenbankvorgänge sein. Sie können eine Prozedur von vielen verschiedenen Stellen in Ihrem Code aufrufen, damit Sie Prozeduren als Bausteine für Ihre Anwendung verwenden können.
Wenn Sie Ihren Code mit Prozeduren strukturieren, bringt das folgende Vorteile:
Mit Prozeduren können Sie Ihre Programme in diskrete logische Einheiten aufteilen. Außerdem ist es leichter, einzelne Einheiten zu debuggen als ein Programm ohne Prozeduren zu debuggen.
Nachdem Sie Prozeduren für ein Programm entwickelt haben, können Sie diese auch in anderen Programmen einsetzen, und das oft mit wenigen bis gar keinen Änderungen. So können Sie Codeduplikate vermeiden.