Sdílet prostřednictvím


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

Structure – příkaz

Koncepty

Datové typy v jazyce Visual Basic

Složené datové typy (Visual Basic)

Typy hodnot a typy odkazu

Proměnné struktury (Visual Basic)

Struktury a třídy (Visual Basic)

Další zdroje

Základní datové typy (Visual Basic)

Struktury (Visual Basic)