Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menggunakan struktur bersama dengan array, objek, dan prosedur, serta antara satu dengan yang lainnya. Interaksi menggunakan sintaks yang sama seperti yang digunakan elemen-elemen ini satu per satu.
Nota
Anda tidak dapat menginisialisasi salah satu elemen struktur dalam deklarasi struktur. Anda hanya dapat menetapkan nilai ke elemen variabel yang telah dinyatakan sebagai jenis struktur.
Struktur dan Array
Struktur dapat berisi array sebagai satu atau beberapa elemennya. Contoh berikut mengilustrasikan hal ini.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Anda mengakses nilai array dalam struktur dengan cara yang sama seperti Anda mengakses properti pada objek. Contoh berikut mengilustrasikan hal ini.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Anda juga dapat mendeklarasikan sebuah array dari struktur. Contoh berikut mengilustrasikan hal ini.
Dim allSystems(100) As systemInfo
Anda mengikuti aturan yang sama untuk mengakses komponen arsitektur data ini. Contoh berikut mengilustrasikan hal ini.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
Struktur dan Objek
Struktur dapat berisi objek sebagai satu atau beberapa elemennya. Contoh berikut mengilustrasikan hal ini.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Anda harus menggunakan kelas objek tertentu dalam deklarasi seperti itu, bukan Object
.
Struktur dan Prosedur
Anda dapat meneruskan struktur sebagai argumen prosedur. Contoh berikut mengilustrasikan hal ini.
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
Contoh sebelumnya meneruskan struktur secara referensi, yang memungkinkan prosedur untuk memodifikasi elemennya sehingga perubahan berlaku dalam kode pemanggil. Jika Anda ingin melindungi struktur dari modifikasi tersebut, berikan berdasarkan nilai.
Anda juga dapat mengembalikan struktur dari prosedur Function
. Contoh berikut mengilustrasikan hal ini.
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 Dalam Struktur
Struktur dapat berisi struktur lain. Contoh berikut mengilustrasikan hal ini.
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"
Anda juga dapat menggunakan teknik ini untuk merangkum struktur yang ditentukan dalam satu modul dalam struktur yang ditentukan dalam modul yang berbeda.
Struktur dapat berisi struktur lain hingga kedalaman yang tidak terbatas.