Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Strukturen in Verbindung mit Arrays, Objekten und Prozeduren sowie miteinander verwenden. Die Interaktionen verwenden dieselbe Syntax wie diese Elemente einzeln.
Hinweis
Sie können keines der Strukturelemente in der Strukturdeklaration initialisieren. Sie können Nur Elementen einer Variablen Werte zuweisen, die als Strukturtyp deklariert wurden.
Strukturen und Arrays
Eine Struktur kann ein Array als ein oder mehrere seiner Elemente enthalten. Im folgenden Beispiel wird dies veranschaulicht.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Sie greifen auf die Werte eines Arrays innerhalb einer Struktur genauso zu, wie Sie auf eine Eigenschaft für ein Objekt zugreifen. Im folgenden Beispiel wird dies veranschaulicht.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Sie können auch ein Array von Strukturen deklarieren. Im folgenden Beispiel wird dies veranschaulicht.
Dim allSystems(100) As systemInfo
Sie befolgen die gleichen Regeln, um auf die Komponenten dieser Datenarchitektur zuzugreifen. Im folgenden Beispiel wird dies veranschaulicht.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
Strukturen und Objekte
Eine Struktur kann ein Objekt als ein oder mehrere seiner Elemente enthalten. Im folgenden Beispiel wird dies veranschaulicht.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Sie sollten in einer solchen Deklaration eine bestimmte Objektklasse verwenden, anstelle von Object
.
Strukturen und Verfahren
Sie können eine Struktur als Prozedurargument übergeben. Im folgenden Beispiel wird dies veranschaulicht.
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
Im vorherigen Beispiel wird die Struktur anhand eines Verweises übergeben, sodass die Prozedur ihre Elemente so ändern kann, dass die Änderungen im aufrufenden Code wirksam werden. Wenn Sie eine Struktur vor einer solchen Änderung schützen möchten, übergeben Sie sie als Wert.
Sie können auch eine Struktur aus einer Function
Prozedur zurückgeben. Im folgenden Beispiel wird dies veranschaulicht.
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
Strukturen innerhalb von Strukturen
Strukturen können andere Strukturen enthalten. Im folgenden Beispiel wird dies veranschaulicht.
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"
Sie können diese Technik auch verwenden, um eine in einem Modul definierte Struktur innerhalb einer in einem anderen Modul definierten Struktur zu kapseln.
Strukturen können andere Strukturen in beliebiger Tiefe enthalten.