البنيات و عناصر البرمجة الأخرى

يمكنك استخدام البنيات بالاقتران مع المصفوفات ، و الكائنات و الإجراءات بالإضافة إلى إمكانية استخدامهم مع بعضهم البعض . كنا أن التفاعلات تستخدم نفس بناء الجملة مثل هذه العناصر حيث تُستخدم بشكل فردي .

ملاحظة

لا يمكنك تهيّئة أي من عناصر البنية في تعريف البنية. و لكن يمكنك تعيين القيم فقط إلى عناصر المتغير الذي تم تعريفه ليكون من نوع البنية .

البنيات و المصفوفات

يمكن أن تحتوي البنية على المصفوفة على هيئة واحد أو أكثر من عناصره. فيما يلي مثال يوضّح ذلك.

Public Structure systemInfo
    Public cPU As String
    Public memory As Long
    Public diskDrives() As String
    Public purchaseDate As Date
End Structure 

يمكنك الوصول إلى قيم المصفوفة داخل البنية بنفس طريقة الوصول إلى الخاصية في الكائن . فيما يلي مثال يوضّح ذلك.

Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"

يمكنك أيضاً تعريف مصفوفة البنيات. فيما يلي مثال يوضّح ذلك.

Dim allSystems(100) As systemInfo

اتبع نفس القواعد للوصول إلى مكونات هندسة البيانات هذه. فيما يلي مثال يوضّح ذلك.

ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"

البنيات و الكائنات

يمكن أن تحتوي البنية على الكائن على هيئة واحد أو أكثر من عناصره. فيما يلي مثال يوضّح ذلك.

Protected Structure userInput
    Public userName As String
    Public inputForm As System.Windows.Forms.Form
    Public userFileNumber As Integer
End Structure

يجب عليك استخدام فئة الكائن المعين في مثل هذا التعريف, بدلاً من Object.

البنيات و الإجراءات

يمكنك تمرير البنية كوسيطة إجراء. فيما يلي مثال يوضّح ذلك.

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

المثال السابق يمرر البنية حسب المرجع ، و الذي يسمح للإجراء بتعديل عناصره بحيث تصبح التغييرات نافذة المفعول في استدعاء التعليمات البرمجية. و إذا كنت تريد أن تحمي بنية ضد مثل هذا التعديل ، مررها حسب القيمة.

كما يمكن إرجاع بنية من إجراء Function . فيما يلي مثال يوضّح ذلك.

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

بنيات داخل البنيات

يمكن أن تحتوي البنيات على بنيات أخرى . فيما يلي مثال يوضّح ذلك.

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"

يمكنك أيضاً استخدام هذه التقنية لتغليف البنية المعرفة في وحدة نمطية واحدة داخل البنية المعرفة في وحدة نمطية مختلفة.

يمكن أن تحتوي البنيات على بنيات أخرى إلى عمق إجباري .

راجع أيضًا:

المهام

استكشاف أخطاء أنواع البيانات

كيفية القيام بما يلي: تعريف بنية

المرجع

كشف بنية

المبادئ

أنواع البيانات في Visual Basic

أنواع البيانات المركبة

بنية المتغيرات

بنيات وفئات

موارد أخرى

نوع بيانات أولي

تطبيق نوع البيانات

البنيات