Structure – příkaz
Deklaruje název struktury a zavádí definici proměnných, vlastností, událostí a procedur, které struktura zahrnuje.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
[ Implements interfacenames ]
[ datamemberdeclarations ]
[ methodmemberdeclarations ]
End Structure
Součásti
| Pojem | Definice |
|---|---|
attributelist |
Nepovinný parametr. Viz seznam atributů. |
accessmodifier |
Nepovinný parametr. Může to být jedna z následujících: - Republik - Proti - Friend - Hlášen - Chráněný přítel - Soukromé chráněné Podívejte se na úrovně přístupu v Visual Basic. |
Shadows |
Nepovinný parametr. Viz Shadows. |
Partial |
Nepovinný parametr. Označuje částečnou definici struktury. Zobrazit částečné. |
name |
Povinná hodnota. Název této struktury Viz deklarované názvy elementů. |
Of |
Nepovinný parametr. Určuje, že se jedná o obecnou strukturu. |
typelist |
Povinné, pokud použijete klíčové slovo of . Seznam parametrů typu pro tuto strukturu Viz seznam typů. |
Implements |
Nepovinný parametr. Označuje, že tato struktura implementuje členy jednoho nebo více rozhraní. Viz příkaz Implements. |
interfacenames |
Vyžaduje se, pokud použijete Implements příkaz. Názvy rozhraní, které tato struktura implementuje. |
datamemberdeclarations |
Povinná hodnota. Nula nebo více Const Dim příkazů,, Enum nebo, Event deklaruje datové členy struktury. |
methodmemberdeclarations |
Nepovinný parametr. Nula nebo více deklarací Function procedur, Operator , Property nebo Sub , které slouží jako Členové metody struktury. |
End Structure |
Povinná hodnota. Ukončí Structure definici. |
Poznámky
StructurePříkaz definuje složený typ hodnoty, který lze přizpůsobit. Struktura je generalizace uživatelsky definovaného typu (UDT) předchozích verzí Visual Basic. Další informace najdete v tématu struktury.
Struktury podporují mnoho stejných funkcí jako třídy. Například struktury mohou mít vlastnosti a postupy, mohou implementovat rozhraní a mohou mít parametrizované konstruktory. Existují však významné rozdíly mezi strukturami a třídami v oblastech, jako jsou dědičnost, deklarace a použití. Třídy jsou také typy odkazů a struktury jsou typy hodnot. Další informace naleznete v tématu struktury a třídy.
Můžete použít Structure pouze v oboru názvů nebo na úrovni modulu. To znamená, že kontext deklarace struktury musí být zdrojový soubor, obor názvů, třída, struktura, modul nebo rozhraní a nemůže být procedura nebo blok. Další informace najdete v tématu deklarace kontextů a výchozích úrovní přístupu.
Struktury se ve výchozím nastavení přistupují k příteli . Můžete upravit jejich úrovně přístupu modifikátory přístupu. Další informace najdete v tématu úrovně přístupu v Visual Basic.
Pravidla
Vnoření. Můžete definovat jednu strukturu v rámci jiné. Vnější struktura se nazývá obsažená struktura a vnitřní struktura se nazývá vnořená struktura. Nemůžete ale přistupovat k členům vnořené struktury prostřednictvím obsahující struktury. Místo toho je nutné deklarovat proměnnou datového typu vnořené struktury.
Deklarace člena Musíte deklarovat každého člena struktury. Člen struktury nelze chránit , nebo
Protected Friendprotože žádná ze struktur nemůže dědit. Struktura sama o sobě však může býtProtectedneboProtected Friend.V rámci struktury můžete deklarovat nula nebo více nesdílených proměnných nebo nesdílených nevlastních událostí. Nemůžete mít jenom konstanty, vlastnosti a postupy, i když některé z nich nejsou sdílené.
Operace. V rámci deklarace nelze inicializovat hodnotu žádného nesdíleného datového členu struktury. Takový datový člen musíte buď inicializovat pomocí parametrizovaného konstruktoru ve struktuře, nebo přiřadit hodnotu členu po vytvoření instance struktury.
Dědičnost. Struktura nemůže dědit z žádného jiného typu než ValueType , ze kterého všechny struktury dědí. Konkrétně jedna struktura nemůže dědit od druhé.
V definici struktury nelze použít příkaz Inherits , ani zadat ValueType .
Provádění. Pokud struktura používá příkaz Implements, je nutné implementovat každého člena definovaného každým rozhraním, které zadáte v
interfacenames.Výchozí vlastnost. Struktura může určovat maximálně jednu vlastnost jako výchozí vlastnost pomocí výchozího modifikátoru. Další informace najdete v tématu výchozí.
Chování
Úroveň přístupu. V rámci struktury můžete deklarovat každého člena s vlastní úrovní přístupu. Všechny členy struktury jsou ve výchozím nastavení veřejným přístupem. Všimněte si, že pokud má struktura vlastní více úrovní přístupu, automaticky se tím omezí přístup k jejím členům, i když upravíte jejich úrovně přístupu modifikátory přístupu.
Oboru. Struktura je v oboru, který obsahuje obor názvů, třídu, strukturu nebo modul.
Rozsah každého člena struktury je celá struktura.
Platné. Struktura sama o sobě nemá život. Místo toho má každá instance struktury životnost nezávisle na všech ostatních instancích.
Doba životnosti instance začíná, když je vytvořena novou klauzulí operátoru . Končí v případě, že skončí životnost proměnné, která ho obsahuje.
Nemůžete roztáhnout dobu života instance struktury. Modul nabízí sbližování funkcí statické struktury. Další informace naleznete v tématu příkaz Module.
Členové struktury mají životnost v závislosti na tom, jak a kde jsou deklarovány. Další informace naleznete v části "doba života" v příkazu třídy.
Vydal. Kód mimo strukturu musí kvalifikovat název člena s názvem této struktury.
pokud kód uvnitř vnořené struktury vytvoří nekvalifikovaný odkaz na prvek programování, Visual Basic vyhledá prvek nejprve ve vnořené struktuře, poté v jeho obsahující struktuře a tak dále k vnějšímu nadřazenému prvku. Další informace naleznete v tématu odkazy na deklarované elementy.
Spotřeba paměti. Stejně jako u všech složených datových typů nemůžete bezpečně vypočítat celkovou spotřebu paměti struktury tím, že přidáváte dohromady jmenovité přidělení úložiště jeho členů. Navíc nemůžete bezpečně předpokládat, že pořadí úložiště v paměti je stejné jako vaše pořadí deklarace. Pokud potřebujete řídit rozložení úložiště struktury, můžete použít StructLayoutAttribute atribut na
Structurepříkaz.
Příklad
Následující příklad používá Structure příkaz k definování sady souvisejících dat pro zaměstnance. Zobrazuje použití Public Friend členů, a Private k reflektování citlivosti datových položek. Také ukazuje proceduru, vlastnost a členy události.
Public Structure employee
' Public members, accessible from throughout declaration region.
Public firstName As String
Public middleName As String
Public lastName As String
' Friend members, accessible from anywhere within the same assembly.
Friend employeeNumber As Integer
Friend workPhone As Long
' Private members, accessible only from within the structure itself.
Private homePhone As Long
Private level As Integer
Private salary As Double
Private bonus As Double
' Procedure member, which can access structure's private members.
Friend Sub CalculateBonus(ByVal rate As Single)
bonus = salary * CDbl(rate)
End Sub
' Property member to return employee's eligibility.
Friend ReadOnly Property Eligible() As Boolean
Get
Return level >= 25
End Get
End Property
' Event member, raised when business phone number has changed.
Public Event ChangedWorkPhone(ByVal newPhone As Long)
End Structure
Další informace o tom, jak používat Structure , naleznete v tématu Structure Variable.