Module-Anweisung

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
Optional. Siehe Attributliste.

accessmodifier
Optional. Dabei kann es sich um eine der folgenden Methoden handeln:

Siehe Access levels in Visual Basic.

name
Erforderlich. Name dieses Moduls. Siehe Declared Element Names.

statements
Optional. Anweisungen, die die Variablen, Eigenschaften, Ereignisse, Prozeduren und geschachtelten Typen dieses Moduls definieren.

End Module
Beendet die Module-Definition.

Hinweise

Eine Module Anweisung definiert einen Bezugstyp, 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 in dem Sinne ist, dass eine 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 innerhalb eines beliebigen Typs verschachteln. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.

Ein Modul hat dieselbe Lebensdauer wie Ihr Programm. Da seine Mitglieder alle Sharedsind, haben sie auch Lebensdauern gleich dem des Programms.

Module sind standardmäßig auf "Freund "-Zugriff festgelegt. Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen. Weitere Informationen finden Sie unter Access-Ebenen in Visual Basic.

Alle Member eines Moduls sind implizit Shared.

Klassen und Module

Diese Elemente haben viele Ähnlichkeiten, aber es gibt auch einige wichtige Unterschiede.

  • Terminologie. Frühere Versionen von Visual Basic erkennen zwei Typen von Modulen: Klassenmodule (CLS-Dateien) und Standardmodule (BAS-Dateien). Die aktuelle Version ruft diese Klassen und 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 Modulelemente werden implizit freigegeben. Sie können das Shared Schlüsselwort nicht verwenden, wenn Sie ein Mitglied deklarieren, und Sie können den freigegebenen Status eines Mitglieds nicht ändern.

  • Vererbung. Ein Modul kann nicht von einem anderen ObjectTyp als dem erben, von dem alle Module 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.

  • Standardeigenschaft. Sie können keine Standardeigenschaften in einem Modul definieren. Weitere Informationen finden Sie unter "Standard".

Verhalten

  • Zugriffsebene. Innerhalb eines Moduls können Sie jedes Mitglied mit einer eigenen Zugriffsstufe deklarieren. Modulelemente sind standardmäßig für den öffentlichen Zugriff verfügbar, außer Variablen und Konstanten, die standardmäßig auf den privaten Zugriff festgelegt sind. Wenn ein Modul über mehr eingeschränkten Zugriff verfügt als ein Element, hat die angegebene Modulzugriffsebene Vorrang.

  • Umfang. Ein Modul befindet sich im gesamten Namespace im Bereich.

    Der Umfang jedes Modulelements ist das gesamte Modul. Beachten Sie, dass alle Mitglieder einer Typaufaufwertung unterzogen werden, was dazu führt, dass ihr Bereich auf den Namespace mit dem Modul höhergestuft wird. 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 der Verweis von außerhalb dieses Moduls liegt. Weitere Informationen finden Sie unter References to Declared Elements.

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

Weitere Informationen