Udostępnij za pośrednictwem


Instrukcja struktury

Deklaruje nazwę struktury i wprowadza definicji zmiennych, właściwości, zdarzenia i procedury, które obejmuje strukturę.

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

Części

Termin

Definicja

attributelist

Opcjonalne.Zobacz listy atrybutów.

accessmodifier

Opcjonalne.Może mieć jedną z następujących czynności:

See Poziomy dostępu w programie Visual Basic.

Shadows

Opcjonalne.Zobacz cienie.

Partial

Opcjonalne.Wskazuje definicji częściowej struktury.See Częściowe (Visual Basic).

name

Wymagane.Nazwa tej struktury.See Nazwy elementów deklarowanej (Visual Basic).

Of

Opcjonalne.Określa, że jest to struktura rodzajowa.

typelist

Wymagane w przypadku użycia z słowa kluczowego.Lista parametrów typu dla tej struktury.Zobacz typu Lista.

Implements

Opcjonalne.Wskazuje, że ta struktura implementuje członków jednej lub więcej interfejsów.See Instrukcja implementuje.

interfacenames

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

datamemberdeclarations

Wymagane.Jeden lub więcej Const, Dim, Enum, lub Event sprawozdań zadeklarowanie danych członków struktury.

methodmemberdeclarations

Opcjonalne.Zero lub więcej deklaracji Function, Operator, Property, lub Sub procedury, które służą jako członków metoda struktury.

End Structure

Wymagane.Kończy działanie Structure definicji.

Uwagi

Structure Instrukcji definiuje typ wartości kompozytowe, który można dostosować.A struktury jest generalizacji typ zdefiniowany przez użytkownika (UDT) z poprzednich wersji programu Visual Basic.Aby uzyskać więcej informacji, zobacz Budowle (Visual Basic).

Struktury obsługuje wiele te same funkcje jak klasy.Na przykład struktury mogą mieć właściwości i procedur, mogą one zawierać interfejsy i może być sparametryzowana konstruktorów.Jednak istnieją znaczne różnice między struktur i klas w obszarach takich jak dziedziczenie, deklaracje i sposób użycia.Ponadto klasy są typy odwołań i struktury są typami wartości.Aby uzyskać więcej informacji, zobacz Struktury i klas (Visual Basic).

Można użyć Structure tylko na poziomie obszaru nazw lub moduł.Oznacza to, kontekście deklaracji struktury musi to być plik źródłowy, obszar nazw, klasy, struktury, moduł lub interfejsu i nie może być procedurą lub bloku.Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i poziomy dostępu domyślne (Visual Basic).

Domyślnie struktur Przyjaciel (Visual Basic) dostępu.Można dostosować ich poziomy dostępu z modyfikatorów dostępu.Aby uzyskać więcej informacji, zobacz Poziomy dostępu w programie Visual Basic.

Zasady

  • Zagnieżdżanie. Można zdefiniować jedną strukturę wewnątrz innego.Zewnętrzna struktura nosi nazwę strukturze, i struktura wewnętrzna nosi nazwę struktury zagnieżdżone.Jednakże nie można uzyskać dostępu członkowie struktury zagnieżdżone poprzez zawierające strukturę.Zamiast tego należy zadeklarować zmiennej typu danych struktury zagnieżdżone.

  • Deklaracji członka. Każdy członek struktury należy zadeklarować.Członek struktury nie może być chronionym lub Protected Friend ponieważ nic nie może dziedziczyć po struktury.Struktury, jednak może być Protected lub Protected Friend.

    Co najmniej jeden nieudostępnionym noncustom zmiennej lub nieudostępnionym, należy zadeklarować zdarzenia w strukturze.Nie możesz mieć stałych, właściwości i procedur, nawet jeżeli niektóre z nich są nieudostępnionym.

  • Inicjowanie. Nie można zainicjować wartości któregokolwiek członka danych, która nie jest udostępniana struktury w ramach swojej deklaracji.Należy zainicjować element danych przez sparametryzowana Konstruktor struktury lub przypisać wartość do członka, po utworzeniu instancji struktury.

  • Dziedziczenie. Struktury nie może dziedziczyć z dowolnego typu innego niż ValueType, z dziedziczą wszystkie struktury.W szczególności jednej struktury nie może dziedziczyć z innym.

    Nie można użyć Dziedziczy instrukcji w definicji struktury, nawet określić ValueType.

  • Implementacja. Jeśli używa struktury Instrukcja implementuje, musi implementować każdy członek zdefiniowane przez każdego interfejsu można określić w interfacenames.

  • Właściwość Default. Strukturę można określić, co najwyżej jedną właściwość jako jej domyślną właściwość, korzystanie z Domyślne (Visual Basic) modyfikator.Aby uzyskać więcej informacji, zobacz Domyślne (Visual Basic).

Zachowanie

  • Poziom dostępu. W strukturze można zadeklarować każdego członka, z poziomu programu access.Domyślnie wszyscy członkowie struktury Publicznego (Visual Basic) dostępu.Należy zauważyć, że jeśli sama struktura ma bardziej ograniczony poziom dostępu, to automatycznie ogranicza dostęp do swoich członków, nawet jeśli dostosowanie ich poziomy dostępu z modyfikatorów dostępu.

  • Zakres. Struktura jest w zasięgu całej jego zawierające obszaru nazw, klasy, struktury lub moduł.

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

  • Okres istnienia. Struktura sam nie jest okres istnienia klucza.Raczej każde wystąpienie tej struktury ma niezależne od wszystkich innych przypadkach okres istnienia klucza.

    Okres istnienia wystąpienia rozpoczyna się, gdy jest tworzony przez Operator New (Visual Basic) klauzuli.Kończy się podczas okresu istnienia zmiennej, która przechowuje kończy.

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

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

  • Kwalifikacji. Kod poza strukturą musi kwalifikować się do nazwy członka o nazwie tej struktury.

    Jeśli kod wewnątrz struktury zagnieżdżone wykonuje niekwalifikowanych odwołanie do elementu programowania, Visual Basic dla elementu najpierw poszukuje struktury zagnieżdżone, następnie w jego strukturze zawierające, i tak dalej peryferyjnych zawierające element.Aby uzyskać więcej informacji, zobacz Odniesienia do zadeklarowanych elementów (Visual Basic).

  • Zużycie pamięci. Podobnie jak w przypadku wszystkich złożonych typów danych, nie można bezpiecznie obliczania zużycia całkowitej pamięci struktury, przez zsumowanie alokacji nominalnej magazynu jego członków.Ponadto nie można bezpiecznie zakładać, kolejność przechowywania w pamięci jest taki sam jak porządek, zgłoszenia.Jeśli wymagana jest kontrola układu przechowywania struktury, można zastosować StructLayoutAttribute atrybutu do Structure instrukcji.

Przykład

W poniższym przykładzie użyto Structure instrukcji, aby zdefiniować zestaw powiązanych danych dla pracownika.Prezentuje ono sposób użycia z Public, Friend, i Private członków, aby odzwierciedlić czułość elementów danych.Pokazuje także członków procedury, właściwości i zdarzeń.

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

Instrukcja klasy (Visual Basic)

Interfejs instrukcji (Visual Basic)

Moduł instrukcji

Dim instrukcji (Visual Basic)

Instrukcja const (Visual Basic)

Instrukcja Enum (Visual Basic)

Oświadczenie zdarzeń

Instrukcja operatora

Właściwość instrukcji

Koncepcje

Struktury i klas (Visual Basic)