Structure — Instrukcja

Deklaruje nazwę struktury i wprowadza definicję zmiennych, właściwości, zdarzenia i procedury, wchodzące w skład struktury.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
    [ Implements interfacenames ]
    [ datamemberdeclarations ]
    [ methodmemberdeclarations ]
End Structure

Części

Termin

Definicja

attributelist

Opcjonalnie.Zobacz Lista atrybutów.

accessmodifier

Opcjonalnie.Może mieć postać:

Zobacz Poziomy dostępu w Visual Basic.

Shadows

Opcjonalnie.Zobacz Cienie.

Partial

Opcjonalnie.Wskazuje częściową definicję struktury.Zobacz Partial (Visual Basic).

name

Wymagany.Nazwa tej struktury.Zobacz Zadeklarowane nazwy elementów (Visual Basic).

Of

Opcjonalnie.Określa, że jest to struktura ogólna.

typelist

Wymagane w przypadku użycia 067b2z78(v=vs.120).md słowa kluczowego.Lista parametrów typu dla tej struktury.Zobacz Wpisz listę.

Implements

Opcjonalnie.Wskazuje, że ta struktura implementuje elementy członkowskie jednego lub więcej interfejsów.Zobacz Implements — Instrukcja.

interfacenames

Wymagane w przypadku użycia Implements instrukcji.Nazwy interfejsów, które implementuje ta struktura.

datamemberdeclarations

Wymagany.Zero lub więcej Const, Dim, Enum, lub Event instrukcji deklarowania Danych członków struktury.

methodmemberdeclarations

Opcjonalnie.Zero lub więcej deklaracji o Function, Operator, Property, lub Subprocedur, które służą jako członkowie metody struktury.

End Structure

Wymagany.Kończy Structure definicję.

Uwagi

Structure instrukcja definiuje typu złożonych wartości, które można dostosowywać.Struktura jest uogólnienie typu zdefiniowanego przez użytkownika (UDT) z poprzednich wersji programu Visual Basic.Aby uzyskać więcej informacji, zobacz Struktury (Visual Basic).

Struktury obsługuje wiele takich samych funkcje jak klasy.Na przykład, struktury mogą mieć właściwości i procedury mogące implementować interfejsy i mogą posiadać sparametryzowane konstruktory.Jednak istnieją znaczne różnice między strukturami i klasami w obszarach takich jak dziedziczenie, deklaracje i użytkowanie.Ponadto klasy są typami odwołań, a struktury są typami wartości.Aby uzyskać więcej informacji, zobacz Struktury i klasy (Visual Basic).

Możesz użyć Structure tylko w przestrzeni nazw lob poziomie modułu.Oznacza to, że Kontekst deklaracji dla struktury musi być plikiem źródłowym, obszarem nazw, klasą, strukturą, modułem lub interfejsem, a nie może być procedurą lub blokiem.Aby uzyskać więcej informacji, zobacz Kontekst deklaracji i domyślne poziomy dostępu (Visual Basic).

Domyślne struktury Friend (Visual Basic) dostępu.Można dostosować ich poziomy dostępu z modyfikatorami dostępu.Aby uzyskać więcej informacji, zobacz Poziomy dostępu w Visual Basic.

Reguły

  • Zagnieżdżanie. Można zdefiniować jedną strukturę w innej.Element zewnętrzny jest wywołany zawierające strukturę, i wewnętrzna struktura nazywa się struktura zagnieżdżona.Jednak nie możesz uzyskać dostępu do elementów członkowskich struktury zagnieżdżonej poprzez zawierającą strukturę.Zamiast tego, należy zadeklarować zmienną typu danych struktury zagnieżdżonej.

  • Deklaracja elementu członkowskiego. Musisz zadeklarować każdego członka struktury.Element członkowski struktury nie może być Chroniony lub Protected Friend ponieważ nic nie może dziedziczyć ze struktury.Struktura, jednak może być Protected lub Protected Friend.

    Można zadeklarować zero lub więcej zmiennych nieudostępnionych lub nieudostępnionych, niestandardowych zdarzeń w strukturze.Nie możesz mieć stałych, właściwości i procedur, nawet jeśli niektóre z nich są udostępniona.

  • Inicjalizacja. Nie można zainicjować wartości któregokolwiek członka danych nieudostępnionych struktur w ramach swojej deklaracji.Musisz zainicjować takiego członka danych za pomocą sparametryzowanego konstruktora struktury lub przypisać wartość do członka, po utworzeniu instancji struktury.

  • Dziedziczenie. Struktura nie może dziedziczyć z dowolnego typu innego niż ValueType, z którego dziedziczą wszystkie struktury.W szczególności jedna struktura nie może dziedziczyć z innej.

    Nie można użyć Inherits — Instrukcja w definicji struktury, nawet do określenia ValueType.

  • Implementacja. Jeśli struktura używa Implements — Instrukcja, należy zaimplementować każdy element członkowski zdefiniowany przez każdy interfejs określony w interfacenames.

  • Domyślna właściwość. Struktura może określić co najwyżej jedną właściwość jako własną właściwość domyślną, z wykorzystaniem modyfikatoraDefault (Visual Basic).Aby uzyskać więcej informacji, zobacz Default (Visual Basic).

Zachowanie

  • Poziom dostępu. W ramach struktury można zadeklarować każdego członka z poziomu programu dostępu.Domyślnie wszystkie elementy członkowskie struktury mają dostęp do Public (Visual Basic).Należy zauważyć, że jeśli sama struktura ma bardziej ograniczony poziom dostępu, automatycznie ogranicza dostęp do swoich elementów członkowskich, nawet jeśli dostosowano ich poziomy dostępu z modyfikatorami dostępu.

  • Zakres. Struktura znajduje się w zakresie zawierających ją przestrzeni nazw, klasy, struktury lub modułu.

    Zakres każdego członka struktury jest całą strukturą.

  • Okres istnienia. Struktura nie ma własnego okresu istnienia.Przeciwnie, każde wystąpienie tej struktury ma cały okres istnienia niezależny od wszystkich innych wystąpień.

    Okres istnienia wystąpienia rozpoczyna się, gdy jest ono tworzone przez New — Operator (Visual Basic) klauzulę.Kończy się ono po zakończeniu okresu istnienia zmiennej, która go posiada.

    Nie można rozszerzyć okresu istnienia wystąpienia struktury.Przybliżenie funkcji struktury statycznej jest dostarczane przez moduł.Aby uzyskać więcej informacji, zobacz Module — Instrukcja.

    Członkowie struktury mają okresy istnienia w zależności od tego, jak i gdzie są one zgłoszone.Aby uzyskać więcej informacji, zobacz „Okres istnienia” w Class — Instrukcja (Visual Basic).

  • Kwalifikacje. Kod poza strukturą musi kwalifikować nazwy elementów członkowskich o nazwie tej struktury.

    Jeśli kod wewnątrz zagnieżdżonej struktury sprawia, że niekwalifikowane odwołanie do elementu programowania języka Visual Basic poszukuje elementu najpierw w strukturze zagnieżdżonej, następnie w strukturze zawierającej i tak dalej na zewnątrz do elementu najbardziej oddalonego.Aby uzyskać więcej informacji, zobacz Odwołania do elementów zadeklarowanych (Visual Basic).

  • Zużycie pamięci. Podobnie jak w przypadku wszystkich złożonych typów danych, nie można bezpiecznie obliczyć zużycia całkowitej pamięci struktury przez zsumowanie nominalnych alokacji własnych elementów członkowskich.Ponadto nie można bezpiecznie przyjąć, że kolejność przechowywania w pamięci jest taka sama, jak kolejność zgłoszenia.Jeżeli konieczne jest kontrolowanie układu pamięci masowej struktury, można zastosować atrybut StructLayoutAttribute do instrukcji Structure.

Przykład

W poniższym przykładzie użyto Structure instrukcji, aby zdefiniować zestaw powiązanych danych dla pracownika.Prezentuje sposób użycia elementów członkowskich Public, Friend i Private, aby odzwierciedlić czułość elementów danych.Pokazuje także procedurę, właściwości i elementy członkowskie zdarzenia.

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

Zobacz też

Informacje

Class — Instrukcja (Visual Basic)

Interface — Instrukcja (Visual Basic)

Module — Instrukcja

Dim — Instrukcja (Visual Basic)

Const — Instrukcja (Visual Basic)

Enum — Instrukcja (Visual Basic)

Event — Instrukcja

Operator — Instrukcja

Property — Instrukcja

Koncepcje

Struktury i klasy (Visual Basic)