Aracılığıyla paylaş


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

Yapısı deyimi

Kavramlar

Visual Basic'te veri türleri

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)

Diğer Kaynaklar

Temel veri türleri (Visual Basic)

Yapıları (Visual Basic)