Sdílet prostřednictvím


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

Class – příkaz (Visual Basic)

Interface – příkaz (Visual Basic)

Module – příkaz

Dim – příkaz (Visual Basic)

Const – příkaz (Visual Basic)

Enum – příkaz (Visual Basic)

Event – příkaz

Operator – příkaz

Property – příkaz

Koncepty

Struktury a třídy (Visual Basic)