Udostępnij za pośrednictwem


Struktury oraz inne elementy programowania (Visual Basic)

Struktury można użyć w połączeniu z tablicami, obiektów i procedur, jak również ze sobą.Interakcje użyć takiej samej składni tych elementów w programie indywidualnie.

[!UWAGA]

Nie można zainicjować elementy struktury w deklaracji struktury.Wartości można przypisać tylko do elementów zmiennej, która została zgłoszona być typu Struktura.

Struktury i tablic

Struktura może zawierać tablicę jako jeden lub więcej z jej elementów.Poniższy przykład ilustruje to.

Public Structure systemInfo
    Public cPU As String
    Public memory As Long
    Public diskDrives() As String
    Public purchaseDate As Date
End Structure 

Wartości w tablicy w strukturze dostęp taki sam sposób dostępu właściwości obiektu.Poniższy przykład ilustruje to.

Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"

Można również zadeklarować tablicę struktur.Poniższy przykład ilustruje to.

Dim allSystems(100) As systemInfo

Postępuj zgodnie z tych samych zasad, dostęp do składników tej architektury danych.Poniższy przykład ilustruje to.

ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"

Struktury i obiektów

Struktura może zawierać obiektu jako jeden lub więcej z jej elementów.Poniższy przykład ilustruje to.

Protected Structure userInput
    Public userName As String
    Public inputForm As System.Windows.Forms.Form
    Public userFileNumber As Integer
End Structure

Należy użyć klasy określonego obiektu w deklaracji, zamiast Object.

Struktury i procedury

Strukturę można przekazać jako argumentu procedury.Poniższy przykład ilustruje to.

Public currentCPUName As String = "700MHz Pentium compatible"
Public currentMemorySize As Long = 256
Public Sub fillSystem(ByRef someSystem As systemInfo)
    someSystem.cPU = currentCPUName
    someSystem.memory = currentMemorySize
    someSystem.purchaseDate = Now
End Sub

Struktura przechodzi do poprzedniego przykładu przez odniesienie, który umożliwia procedury zmodyfikować jego elementy, tak, aby zmiany zostały wprowadzone w kod wywołujący.Aby chronić strukturę wobec takich modyfikacji, przesłać go przez wartość.

Może również zwracać struktury z Function procedury.Poniższy przykład ilustruje to.

Dim allSystems(100) As systemInfo
Function findByDate(ByVal searchDate As Date) As systemInfo
    Dim i As Integer
    For i = 1 To 100
        If allSystems(i).purchaseDate = searchDate Then Return allSystems(i)
    Next i
   ' Process error: system with desired purchase date not found.
End Function

Struktury w ramach struktur

Struktury mogą zawierać inne struktury.Poniższy przykład ilustruje to.

Public Structure driveInfo
    Public type As String
    Public size As Long
End Structure
Public Structure systemInfo
    Public cPU As String
    Public memory As Long
    Public diskDrives() As driveInfo
    Public purchaseDate As Date
End Structure
Dim allSystems(100) As systemInfo
ReDim allSystems(1).diskDrives(3)
allSystems(1).diskDrives(0).type = "Floppy"

Ta technika umożliwia także hermetyzowania struktury zdefiniowane w jednym module wewnątrz struktury zdefiniowane w module różne.

Struktury mogą zawierać inne struktury dowolnego głębokość.

Zobacz też

Zadania

Rozwiązywanie problemów związanych z typami danych (Visual Basic)

Porady: deklarowanie struktury (Visual Basic)

Informacje

Structure — Instrukcja

Koncepcje

Typy danych w Visual Basic

Złożone typy danych (Visual Basic)

Typy wartości i odwołań

Zmienne struktur (Visual Basic)

Struktury i klasy (Visual Basic)

Inne zasoby

Podstawowe typy danych (Visual Basic)

Struktury (Visual Basic)