Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yapıları diziler, nesneler ve yordamlarla birlikte ve birbiriyle birlikte kullanabilirsiniz. Etkileşimler, bu öğelerin tek tek kullandığı söz dizimini kullanır.
Uyarı
Yapı bildirimindeki yapı öğelerinin hiçbirini başlatamazsınız. Değerleri yalnızca yapı türünde olduğu bildirilen bir değişkenin öğelerine atayabilirsiniz.
Yapılar ve Diziler
Bir yapı, bir diziyi bir veya daha fazla öğesi olarak içerebilir. Aşağıdaki örnekte bu gösterilmektedir.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Bir yapı içindeki bir dizinin değerlerine, nesnedeki bir özelliğe erişir gibi erişirsiniz. Aşağıdaki örnekte bu gösterilmektedir.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Ayrıca bir yapı dizisi de bildirebilirsiniz. Aşağıdaki örnekte bu gösterilmektedir.
Dim allSystems(100) As systemInfo
Bu veri mimarisinin bileşenlerine erişmek için aynı kuralları izlersiniz. Aşağıdaki örnekte bu gösterilmektedir.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
Yapılar ve Nesneler
Bir yapı, bir veya daha fazla öğesi olarak bir nesne içerebilir. Aşağıdaki örnekte bu gösterilmektedir.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Böyle bir bildirimde yerine Objectbelirli bir nesne sınıfı kullanmalısınız.
Yapılar ve Yordamlar
Bir yapıyı prosedür bağımsız değişkeni olarak geçirebilirsiniz. Aşağıdaki örnekte bu gösterilmektedir.
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
Yukarıdaki örnek, yapıyı referans yoluyla iletir, bu da yordamın öğelerini değiştirerek değişikliklerin çağrı kodunda etkili olmasını sağlar. Bir yapıyı bu tür değişikliklere karşı korumak istiyorsanız, değer olarak iletin.
Bir yapı ayrıca Function yordamından döndürülebilir. Aşağıdaki örnekte bu gösterilmektedir.
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 İçinde Yapılar
Yapılar başka yapılar içerebilir. Aşağıdaki örnekte bu gösterilmektedir.
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, farklı bir modülde tanımlanan bir yapı içinde bir modülde tanımlanan bir yapıyı kapsüllemek için de kullanabilirsiniz.
Yapılar rastgele derinliğe kadar başka yapılar içerebilir.