Module — Instrukcja

Deklaruje nazwę modułu i wprowadza definicję zmiennych, właściwości, zdarzeń i procedur, które obejmuje moduł.

Składnia

[ <attributelist> ] [ accessmodifier ]  Module name
    [ statements ]
End Module

generatora

attributelist
Opcjonalny. Zobacz Lista atrybutów.

accessmodifier
Opcjonalny. Może być jednym z następujących elementów:

Zobacz Poziomy dostępu w Visual Basic.

name
Wymagany. Nazwa tego modułu. Zobacz Nazwy zadeklarowanych elementów.

statements
Opcjonalny. Instrukcje definiujące zmienne, właściwości, zdarzenia, procedury i zagnieżdżone typy tego modułu.

End Module
Kończy definicję Module .

Uwagi

Instrukcja Module definiuje typ odwołania dostępny w całej przestrzeni nazw. Moduł (nazywany czasem modułemstandardowym) jest podobny do klasy, ale z pewnymi ważnymi różnicami. Każdy moduł ma dokładnie jedno wystąpienie i nie musi być tworzony ani przypisywany do zmiennej. Moduły nie obsługują dziedziczenia ani implementowania interfejsów. Zwróć uwagę, że moduł nie jest typem w tym sensie, że klasa lub struktura to — nie można zadeklarować elementu programowania, aby mieć typ danych modułu.

Można używać Module tylko na poziomie przestrzeni nazw. Oznacza to, że kontekst deklaracji modułu musi być plikiem źródłowym lub przestrzenią nazw i nie może być klasą, strukturą, modułem, interfejsem, procedurą lub blokiem. Nie można zagnieżdżać modułu w innym module ani w obrębie dowolnego typu. Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i Domyślne poziomy dostępu.

Moduł ma ten sam okres istnienia co program. Ponieważ jego członkowie są wszystkimi Shared, mają również okresy istnienia równe programowi.

Domyślnie moduły mają dostęp znajomy . Możesz dostosować ich poziomy dostępu za pomocą modyfikatorów dostępu. Aby uzyskać więcej informacji, zobacz Poziomy dostępu w Visual Basic.

Wszyscy członkowie modułu są niejawnie Shared.

Klasy i moduły

Te elementy mają wiele podobieństw, ale istnieją również pewne ważne różnice.

  • Terminologia. Poprzednie wersje programu Visual Basic rozpoznają dwa typy modułów: moduły klas (pliki cls) i standardowe moduły (pliki bas). Bieżąca wersja wywołuje odpowiednio te klasy i moduły.

  • Udostępnione elementy członkowskie. Możesz kontrolować, czy element członkowski klasy jest elementem członkowskim współużytkowanego, czy wystąpienia.

  • Orientacja obiektu. Klasy są obiektowe, ale moduły nie. Dlatego tylko klasy mogą być tworzone jako obiekty. Aby uzyskać więcej informacji, zobacz Obiekty i klasy.

Reguły

  • Modyfikatorów. Wszystkie elementy członkowskie modułu są niejawnie udostępniane. Nie można użyć Shared słowa kluczowego podczas deklarowania elementu członkowskiego i nie można zmienić stanu udostępnionego żadnego członka.

  • Dziedziczenia. Moduł nie może dziedziczyć z dowolnego typu innego niż Object, z którego dziedziczą wszystkie moduły. W szczególności jeden moduł nie może dziedziczyć z innego modułu.

    Nie można użyć instrukcji Inherits w definicji modułu, nawet do określenia .Object

  • Właściwość domyślna. Nie można zdefiniować żadnych właściwości domyślnych w module. Aby uzyskać więcej informacji, zobacz Domyślne.

Zachowanie

  • Poziom dostępu. W ramach modułu można zadeklarować każdy element członkowski z własnym poziomem dostępu. Elementy członkowskie modułu domyślnie mają dostęp publiczny , z wyjątkiem zmiennych i stałych, które domyślnie mają dostęp prywatny . Jeśli moduł ma bardziej ograniczony dostęp niż jeden z jego elementów członkowskich, określony poziom dostępu modułu ma pierwszeństwo.

  • Zakres. Moduł znajduje się w zakresie w całej przestrzeni nazw.

    Zakres każdego elementu członkowskiego modułu to cały moduł. Zwróć uwagę, że wszyscy członkowie przechodzą podwyższanie poziomu typu, co powoduje podwyższenie ich zakresu do przestrzeni nazw zawierającej moduł. Aby uzyskać więcej informacji, zobacz Podwyższanie poziomu typów.

  • Kwalifikacji. Możesz mieć wiele modułów w projekcie i zadeklarować elementy członkowskie o tej samej nazwie w co najmniej dwóch modułach. Należy jednak zakwalifikować dowolne odwołanie do takiego elementu członkowskiego z odpowiednią nazwą modułu, jeśli odwołanie pochodzi spoza tego modułu. Aby uzyskać więcej informacji, zobacz Odwołania do zadeklarowanych elementów.

Przykład

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

Zobacz też