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
Koncepcje
Złożone typy danych (Visual Basic)
Zmienne struktur (Visual Basic)
Struktury i klasy (Visual Basic)