Yapıları ve diğer programlama öğeleri (Visual Basic)
Diziler, nesneleri ve yordamlar ile aynı zamanda birbirleriyle bağlantılı yapıları kullanabilirsiniz.Bu öğeleri tek tek kullanmak gibi etkileşimler aynı sözdizimini kullanır.
[!NOT]
Yapı öğelerini Yapı bildiriminde başlatılamıyor.Yalnızca yapı türünde bildirilmiş bir değişken öğelerine değerler atayabilirsiniz.
Yapıları ve Diziler
Bir yapı, bir dizi olarak bir veya daha fazlasını öğelerini içerebilir.Aşağıdaki örnek bunu göstermektedir.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Nesnedeki özellik erişimi tıpkı bir yapı içinde bir dizi değerlerini erişin.Aşağıdaki örnek bunu göstermektedir.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Bir dizi yapıları da bildirebilirsiniz.Aşağıdaki örnek bunu göstermektedir.
Dim allSystems(100) As systemInfo
Bu veri mimarisinin bileşenlerine erişmek için aynı kuralları izleyin.Aşağıdaki örnek bunu göstermektedir.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
Yapıları ve nesneler
Bir yapı, bir nesne olarak bir veya daha fazlasını öğelerini içerebilir.Aşağıdaki örnek bunu göstermektedir.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Bu tür bildiriminde belirli nesne sınıfını kullanmalısınız yerine Object.
Yapıları ve yordamlar
Yordam bağımsız değişken olarak bir yapı iletebilirsiniz.Aşağıdaki örnek bunu göstermektedir.
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
Yapı önceki örnekte geçen başvuru, yordamı çağıran kodun içinde değişiklikler etkili olacak şekilde öğelerini değiştirmek sağlar.Yapısı gibi değiştirilmesine karşı korumak istiyorsanız, değeri geçirir.
Ayrıca bir yapısından dönmek bir Function yordam.Aşağıdaki örnek bunu göstermektedir.
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
Yapıların içinde yapıları
Diğer yapıların yapıları içerebilir.Aşağıdaki örnek bunu göstermektedir.
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"
Bu tekniği, bir modülü farklı modülünde tanımlanmış yapısı içinde tanımlanan bir yapıya kapsüllemek için de kullanabilirsiniz.
Yapıları, keyfi bir derinlik için diğer yapıları içerebilir.
Ayrıca bkz.
Görevler
Veri türleri (Visual Basic) sorun giderme
Nasıl yapılır: (Visual Basic) bir yapının bildirimini
Başvuru
Kavramlar
Bileşik veri türleri (Visual Basic)
Değer türleri ile başvuru türleri
Yapý deðiþkenlerini (Visual Basic)
Yapılar ve sınıflar (Visual Basic)