Module – příkaz
Deklaruje název modulu a zavádí definici proměnných, vlastností, událostí a procedur, které modul skládá.
Syntaxe
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
Součástky
attributelist
Nepovinné. Viz seznam atributů.
accessmodifier
Nepovinné. Může to být jedna z následujících možností:
Viz úrovně Accessu v jazyce Visual Basic.
name
Povinný: Název tohoto modulu. Viz Deklarované názvy elementů.
statements
Nepovinné. Příkazy, které definují proměnné, vlastnosti, události, procedury a vnořené typy tohoto modulu.
End Module
Ukončí definici Module
.
Poznámky
Příkaz Module
definuje odkazový typ dostupný v celém oboru názvů. Modul (někdy označovaný jako standardní modul) se podobá třídě, ale s některými důležitými rozdíly. Každý modul má přesně jednu instanci a nemusí se vytvářet ani přiřazovat k proměnné. Moduly nepodporují dědičnost ani implementují rozhraní. Všimněte si, že modul není typem v tom smyslu, že třída nebo struktura je – nemůžete deklarovat programovací prvek, který má datový typ modulu.
Můžete použít Module
pouze na úrovni oboru názvů. To znamená, že kontext deklarace modulu musí být zdrojovým souborem nebo oborem názvů a nemůže to být třída, struktura, modul, rozhraní, procedura nebo blok. Modul nelze vnořit do jiného modulu ani v žádném typu. Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu.
Modul má stejnou životnost jako váš program. Vzhledem k tomu, že jeho členové jsou všichni Shared
, mají také životnosti stejné jako program.
Moduly jsou ve výchozím nastavení pro přístup spřáteli . Jejich úrovně přístupu můžete upravit pomocí modifikátorů přístupu. Další informace naleznete v tématu Úrovně přístupu v jazyce Visual Basic.
Všichni členové modulu jsou implicitně Shared
.
Třídy a moduly
Tyto prvky mají mnoho podobností, ale existují i některé důležité rozdíly.
Terminologie. Předchozí verze jazyka Visual Basic rozpoznávají dva typy modulů: moduly tříd (soubory .cls) a standardní moduly (soubory .bas). Aktuální verze volá tyto třídy a moduly v uvedeném pořadí.
Sdílené členy. Můžete určit, jestli je členem třídy sdílený člen nebo člen instance.
Orientace objektu Třídy jsou objektově orientované, ale moduly nejsou. Proto lze vytvořit instanci pouze tříd jako objekty. Další informace naleznete v tématu Objekty a třídy.
Pravidla
Modifikátory. Všichni členové modulu jsou implicitně sdíleni. Klíčové slovo nelze použít
Shared
při deklarování člena a nemůžete změnit sdílený stav žádného člena.Dědičnosti. Modul nemůže dědit z jiného typu, než Objectz něhož dědí všechny moduly. Konkrétně jeden modul nemůže dědit z jiného.
Příkaz Inherits nelze použít v definici modulu, a to ani k určení Object.
Výchozí vlastnost. V modulu nelze definovat žádné výchozí vlastnosti. Další informace najdete v tématu Výchozí.
Chování
Úroveň přístupu V rámci modulu můžete deklarovat každý člen s vlastní úrovní přístupu. Členové modulu mají ve výchozím nastavení veřejný přístup s výjimkou proměnných a konstant, které mají výchozí privátní přístup. Pokud má modul více omezený přístup než jeden ze svých členů, má zadaná úroveň přístupu modulu přednost.
Rozsah. Modul je v oboru názvů.
Rozsah každého člena modulu je celý modul. Všimněte si, že všichni členové procházejí povýšení typu, což způsobí, že jejich obor je povýšen na obor názvů obsahující modul. Další informace naleznete v tématu Zvýšení úrovně typu.
Kvalifikace. V projektu můžete mít více modulů a můžete deklarovat členy se stejným názvem ve dvou nebo více modulech. Pokud je však odkaz mimo tento modul, musíte kvalifikovat jakýkoli odkaz na takový člen s odpovídajícím názvem modulu. Další informace naleznete v tématu Odkazy na deklarované elementy.
Příklad
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