Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deklariert den Namen eines Moduls und führt die Definition der Variablen, Eigenschaften, Ereignisse und Prozeduren ein, die das Modul umfasst.
Syntax
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
Bestandteile
attributelist
Wahlfrei. Siehe Attributliste.
accessmodifier
Wahlfrei. Dabei kann es sich um eine der folgenden Methoden handeln:
Siehe Access-Ebenen in Visual Basic.
name
Erforderlich. Name dieses Moduls. Siehe deklarierte Elementnamen.
statements
Wahlfrei. Anweisungen, die die Variablen, Eigenschaften, Ereignisse, Prozeduren und geschachtelten Typen dieses Moduls definieren.
End Module
Beendet die Module Definition.
Bemerkungen
Eine Module Anweisung definiert einen Referenztyp, der im gesamten Namespace verfügbar ist. Ein Modul (manchmal als Standardmodul bezeichnet) ähnelt einer Klasse, aber mit einigen wichtigen Unterschieden. Jedes Modul verfügt über genau eine Instanz und muss nicht erstellt oder einer Variablen zugewiesen werden. Module unterstützen keine Vererbung oder Implementieren von Schnittstellen. Beachten Sie, dass ein Modul kein Typ im Sinne einer Klasse oder Struktur ist – Sie können kein Programmierelement deklarieren, um den Datentyp eines Moduls zu haben.
Sie können nur auf Namespaceebene verwenden Module . Dies bedeutet, dass der Deklarationskontext für ein Modul eine Quelldatei oder ein Namespace sein muss und keine Klasse, Struktur, Modul, Schnittstelle, Prozedur oder Block sein kann. Sie können ein Modul nicht innerhalb eines anderen Moduls oder in einem beliebigen Typ schachteln. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.
Ein Modul hat dieselbe Lebensdauer wie Ihr Programm. Da ihre Mitglieder alle Sharedsind, verfügen sie auch über Lebenszeiten, die dem des Programms entsprechen.
Module sind standardmäßig auf Friend-Zugriff festgelegt. Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen. Weitere Informationen finden Sie unter Access-Ebenen in Visual Basic.
Alle Elemente eines Moduls sind implizit Shared.
Klassen und Module
Diese Elemente haben viele Ähnlichkeiten, aber es gibt auch einige wichtige Unterschiede.
Terminologie. In früheren Versionen von Visual Basic werden zwei Typen von Modulen erkannt: Klassenmodule (CLS-Dateien) und Standardmodule (BAS-Dateien). Die aktuelle Version ruft diese Klassen bzw. Module auf.
Freigegebene Mitglieder. Sie können steuern, ob ein Mitglied einer Klasse ein freigegebenes oder Instanzmitglied ist.
Objektausrichtung. Klassen sind objektorientiert, aber Module sind nicht. Daher können nur Klassen als Objekte instanziiert werden. Weitere Informationen finden Sie unter "Objekte und Klassen".
Regeln
Modifizierer. Alle Modulmember werden implizit freigegeben. Sie können das
SharedSchlüsselwort nicht verwenden, wenn Sie ein Mitglied deklarieren, und Sie können den freigegebenen Status eines Mitglieds nicht ändern.Erbschaft. Ein Modul kann nicht von einem anderen ObjectTyp als , von dem alle Module erben, erben. Insbesondere kann ein Modul nicht von einem anderen erben.
Sie können die Inherits-Anweisung nicht in einer Moduldefinition verwenden, auch um anzugeben Object.
Default-Eigenschaft. Sie können keine Standardeigenschaften in einem Modul definieren. Weitere Informationen finden Sie unter "Standard".
Verhalten
Zugriffsebene. Innerhalb eines Moduls können Sie jedes Element mit einer eigenen Zugriffsebene deklarieren. Modulmember wird standardmäßig für den öffentlichen Zugriff verwendet, mit Ausnahme von Variablen und Konstanten, die standardmäßig für den privaten Zugriff verwendet werden. Wenn ein Modul mehr eingeschränkten Zugriff hat als eines seiner Member, hat die angegebene Modulzugriffsebene Vorrang.
Bereich. Ein Modul befindet sich im gesamten Namespace.
Der Bereich jedes Modulelements ist das gesamte Modul. Beachten Sie, dass alle Member einer Typauswertung unterzogen werden, wodurch ihr Bereich in den Namespace höhergestuft wird, der das Modul enthält. Weitere Informationen finden Sie unter Type Promotion.
Qualifikation. Sie können mehrere Module in einem Projekt haben und Mitglieder mit demselben Namen in zwei oder mehr Modulen deklarieren. Sie müssen jedoch einen Verweis auf ein solches Element mit dem entsprechenden Modulnamen qualifizieren, wenn sich der Verweis von außerhalb dieses Moduls befindet. Weitere Informationen finden Sie unter Verweise auf deklarierte Elemente.
Beispiel
Public Module thisModule
Sub Main()
Dim userName As String = InputBox("What is your name?")
MsgBox("User name is " & userName)
End Sub
' Insert variable, property, procedure, and event declarations.
End Module