Structure – příkaz
Deklaruje název struktury a zavádí definici proměnných, vlastností, událostí a postupů, které tvoří strukturu.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
[ Implements interfacenames ]
[ datamemberdeclarations ]
[ methodmemberdeclarations ]
End Structure
Části
Termín |
Definice |
attributelist |
Volitelné.Viz Seznam atributů. |
accessmodifier |
Volitelné.Může být jeden z následujících: Viz téma Úrovně přístupu v jazyce Visual Basic. |
Shadows |
Volitelné.Viz Stíny. |
Partial |
Volitelné.Označuje částečnou definici struktury.Viz téma Partial (Visual Basic). |
name |
Požadováno.Název této struktury.Viz téma Deklarované názvy elementu (Visual Basic). |
Of |
Volitelné.Určuje, že toto je obecná struktura. |
typelist |
Povinné, pokud používáte klíčové slovo Of.Seznam parametrů typu pro tuto strukturu.Viz Seznam typů. |
Implements |
Volitelné.Označuje, že tato struktura implementuje členy jednoho nebo více rozhraní.Viz téma Implements – Příkaz. |
interfacenames |
Povinné, pokud používáte příkaz Implements.Názvy rozhraní, které implementuje tato struktura. |
datamemberdeclarations |
Požadováno.Nula nebo více příkazů Const, Dim, Enum nebo Event deklarujících datové členy struktury. |
methodmemberdeclarations |
Volitelné.Nula nebo více deklarací procedur Function, Operator, Property nebo Sub, které slouží jako členové metody struktury. |
End Structure |
Požadováno.Ukončí definici Structure. |
Poznámky
Příkaz Structure definuje složený typ hodnoty, který lze přizpůsobit.Struktura je generalizace uživatelem definovaného typu (UDT) z předchozí verze aplikace Visual Basic.Další informace naleznete v tématu Struktury (Visual Basic).
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.Nicméně existují významné rozdíly mezi strukturami a třídami v oblastech, jako je dědičnost, prohlášení a využití.Třídy jsou odkazové typy a struktury jsou typy hodnot.Další informace naleznete v tématu Struktury a třídy (Visual Basic).
Structure můžete lze používat pouze na úrovni oboru názvů nebo modulu.To znamená, že kontext deklarace pro strukturu musí být zdrojový soubor, obor názvů, třída, struktura, modul nebo rozhraní a nesmí být procedura nebo blok.Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu (Visual Basic).
Struktury výchozí pro přístup Friend (Visual Basic).Můžete nastavit jejich úrovně přístupu modifikátory přístupu.Další informace naleznete v tématu Úrovně přístupu v jazyce Visual Basic.
Pravidla
Vnořené. Můžete definovat jednu strukturu v jiné.Vnější struktura se nazývá obsahující struktura a vnitřní struktura se nazývá vnořená struktury.K členům vnořené konstrukce však nelze přistupovat prostřednictvím obsažené struktury.Místo toho je třeba deklarovat proměnnou datového typu vnořené struktury.
Deklarace člena. Každého člena struktury je třeba deklarovat.Člen struktury nemůže být chráněný nebo Protected Friend, protože ze struktury nelze nic zdědit.Struktura samotná však může být Protected nebo Protected Friend.
Můžete deklarovat nula nebo více nesdílených proměnných nebo nesdílených, nevlastních událostí ve struktuře.Nemůžete mít pouze konstanty, vlastnosti a postupy, ani když jsou některé z nich nesdílené.
Inicializace. Nelze inicializovat hodnotu žádného nesdíleného datového člena struktury jako součást její deklarace.Musíte inicializovat takového datového člena parametrizovaným konstruktorem ve struktuře nebo přiřadit hodnotu člena po vytvoření instance struktury.
Dědičnost. Struktura nemůže dědit z libovolného typu s výjimkou ValueType, ze kterého dědí všechny struktury.Zejména jedna struktura nemůže dědit z jiné.
V definici struktury nelze použít Inherits – příkaz ani k určení ValueType.
Implementace. Pokud struktura používá Implements – Příkaz, musíte implementovat každého člena definovaného každým rozhraním, které určíte v interfacenames.
Výchozí vlastnost. Struktura může určit nejvýše jednu vlastnost jako jsou výchozí vlastnost, pomocí modifikátoru Výchozí (Visual Basic).Další informace naleznete v tématu Výchozí (Visual Basic).
Chování
Úroveň přístupu. V rámci struktury můžete deklarovat každého člena se svou vlastní úrovní přístupu.Všechny členy struktury přejdou do výchozího nastavení přístupu Public (Visual Basic).Všimněte si, že pokud má sama struktura omezenější úroveň přístupu, automaticky to omezuje přístup k jejím členům, a to i v případě, že upravíte jejich úroveň přístupu modifikátory přístupu.
Rozsah. Struktura je v oboru v celém svém oboru názvů, třídě, struktuře a modulu.
Obor každého člena struktury je celá struktura.
Životnost. Struktura sama nemá životnost.Každá instance této struktury má raději životnost nezávislou na všech ostatních instancích.
Životnost instance začne, když je vytvořena klauzulí New – operátor (Visual Basic).Končí při ukončení platnosti proměnné, která ho obsahuje.
Nelze prodloužit životnost instance struktury.Modul zajišťuje aproximaci funkce statické struktury.Další informace naleznete v tématu Module – příkaz.
Členové struktury mají životnost v závislosti na tom, jak a kde byli deklarováni.Další informace naleznete pod nadpisem „Doba platnosti“ v Class – příkaz (Visual Basic).
Kvalifikace. Kód mimo strukturu musí kvalifikovat název člena s názvem této struktury.
Pokud kód uvnitř vnořené struktury vytváří nekvalifikovaný odkaz na programovací prvek, Visual Basic vyhledá prvek nejprve ve vnořené struktuře, pak v jeho obsahující struktuře, atd. až po vnější obsahující element.Další informace naleznete v tématu Odkazy na deklarované elementy (Visual Basic).
Spotřeba paměti. Stejně jako u všech složených datových typů nelze bezpečně vypočítat celkovou spotřebu paměti struktury sečtením nominálních přidělení úložiště jejích členů.Kromě toho nelze bezpečně předpokládat, že pořadí úložiště v paměti je stejné jako vaše pořadí prohlášení.Pokud je nutné řídit rozložení úložiště struktury, můžete použít atribut StructLayoutAttribute na příkaz Structure.
Příklad
Následující příklad používá příkaz Structure k definici sady souvisejících dat pro zaměstnance.Ukazuje použití členů Public, Friend a Private pro vyznačení 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
Viz také
Referenční dokumentace
Interface – příkaz (Visual Basic)