Struktury a ostatní programovací elementy (Visual Basic)
Struktury můžete použít ve spojení s poli, objekty a postupy, jakož i s sebou.Interakce používají stejnou syntaxi jako tyto prvky používat samostatně.
[!POZNÁMKA]
Nelze inicializovat struktury prvky v deklaraci struktury.Pouze na prvky vykázaná struktury typu proměnné můžete přiřadit hodnoty.
Struktury a matice
Struktura může obsahovat matici jako jeden z jeho prvků.To ukazuje následující příklad.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Hodnoty pole v rámci struktury přistupovat stejným způsobem přístup k vlastnosti objektu.To ukazuje následující příklad.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Můžete také deklarovat pole struktur.To ukazuje následující příklad.
Dim allSystems(100) As systemInfo
Přístup k součásti architektury tohoto data stejným pravidlům.To ukazuje následující příklad.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
Struktury a objekty
Struktura může obsahovat objekt jako jeden z jeho prvků.To ukazuje následující příklad.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Používejte určitý objekt třídy v prohlášení, spíše než Object.
Struktury a postupy
Strukturu můžete předat jako argument postup.To ukazuje následující příklad.
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
V předchozím příkladu prochází strukturu odkazem, což umožňuje postup úpravy jeho prvků tak, aby se změny projevily v volající kód.Chcete-li zamknout strukturu proti takové změně, předejte podle hodnoty.
Můžete také vrátit strukturu ze Function postup.To ukazuje následující příklad.
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
Struktur v rámci struktury
Struktury mohou obsahovat další struktury.To ukazuje následující příklad.
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"
Tento postup můžete také zapouzdřit struktury definované v jeden modul v rámci struktury definované v různých modulu.
Struktury mohou obsahovat další struktury libovolného hloubku.
Viz také
Úkoly
Řešení potíží s datovými typy (Visual Basic)
Postupy: Definice struktury (Visual Basic)
Referenční dokumentace
Koncepty
Datové typy v jazyce Visual Basic
Složené datové typy (Visual Basic)
Proměnné struktury (Visual Basic)
Struktury a třídy (Visual Basic)