كشف بنية

يقوم بتعريف اسم البنية ثم يقدم تعريف المتغيرات و الخصائص والأحداث و الإجراءات التي تشملها البنية.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
    [ Implements interfacenames ]
    datamemberdeclarations
    [ methodmemberdeclarations ]
End Structure

الأجزاء

  • attributelist
    اختياري. راجع قائمة سمة.

  • accessmodifier
    اختياري. يمكن أن يكون أحد الخيارات التالية:

    انظر مستويات الوصول في Visual Basic

  • Shadows
    اختياري. راجع الظلال.

  • Partial
    اختياري. يقوم بـالإشارة إلى تعريف جزئي للبنية. انظر (Visual Basic) جزئي

  • name
    مطلوبة. اسم هذا البنية. انظر أسماء العنصر المعرف

  • Of
    اختياري. يـحدد أن هذه البنية عامة.

  • typelist
    مطلوب إذا استخدمت الكلمة الأساسية Of. قائمة معلمات النوع لهذه البنية. راجع قائمة النوع.

  • Implements
    اختياري. يشير إلى أن هذا البنية تقوم بتطبيق أعضاء واجهة واحدة أو أكثر. انظر جملة التنفيذ

  • interfacenames
    مطلوبة إذا استخدمت الكشف Implements. أسماء الواجهات التي تستخدمها هذه البنية .

  • datamemberdeclarations
    مطلوبة. واحد أو أكثرConst, Dim, Enum، أو Event العبارات للتصريح عن أعضاء البيانات من البنية.

  • methodmemberdeclarations
    اختياري. صفر من الـتعريفات أو أكثر من Function, Operator, Property، أو Sub الإجراءات التي تلعب دور أسلوب الأعضاءمن البنية.

  • End Structure
    مطلوبة. يقوم بإنهاء تعريف Structure.

ملاحظات

كشف Structure يعرف نوع قيمة مركبة الذي يمكنك تخصيصه. بنية هو تعميم لنوع معرف من قبل المستخدم (UDT) الموجودة في الإصدارات السابقة من Visual Basic. لمزيد من المعلومات، راجع البنيات.

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

يمكنك استخدام Structure في مستوى وحدة نمطية أو مساحة اسم فقط. وهذا يعني تعريف السياق لبنية يجب أن يكون ملف مصدر, مساحة اسم, فئة, بنية, وحدة نمطية، أو واجهة و لا يمكن أن يكون احراء أو كتلة. لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.

الـبنيات الافتراضي إلى صديق (Visual Basic) الوصول. يمكنك ضبط مستويات الوصول الخاصة بهم بمعدلات الوصول. لمزيد من المعلومات، راجع مستويات الوصول في Visual Basic.

القواعد

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

  • تعريف الـعضو . يجب أن تقوم بتعريف كل عضو في البنية. لا يمكن أن يكون عضو بنية محمي or Protected Friend بسبب أنه لا يمكن وراثة أي شيء من البنية. ولكن البنية نفسها، يمكن أن تكون Protected أو Protected Friend.

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

  • التهيئة. لا يمكنك تهيّأت قيمة أي عضو بيانات غير مشترك لبنية كجزء من التعريف الخاص بها. يجب عليك اما تهيّأت عضو البيانات عن طريق الدالة الإنشائية بمعلمات تشغيل على البنية, أو تعيين قيمة إلى العضو بعد إنشاء مثيل من البنية.

  • الوراثة. لا ترث بنية من أي نوع أخرى غير ValueType، التي ترث كل البنيات منها . وبشكل خاص، لا ترث بنية واحدة من آخر.

    لا يمكنك استخدام يرث الكشف في تعريف بنية حتى لتحديد ValueType.

  • التنفيذ. إذا كانت البنية تستخدم جملة التنفيذ، يجب تطبيق كل عضو معرف من قبل كل الواجهة التي تحددها في interfacenames.

  • الخاصية الافتراضية. يمكن لبنية تحديد خاصية واحدة على الأكثر كـ الخاص بها الخاصية الافتراضية ، باستخدام الافتراضي (Visual Basic) المعدّل. لمزيد من المعلومات، راجع الافتراضي (Visual Basic).

السلوك

  • مستوى الوصول. داخل بنية يمكنك تعريف كل عضو مع مستوى الوصول الخاص به. كل أعضاء البنية افتراضياً لـ عام (Visual Basic) الوصول. لاحظ أن إذا كانت البنية نفسها لديها مستوى وصول مقيد أكثر, هذا تلقائياً يقوم بتقييد الوصول إلى أعضائها ، حتى في حالة ضبط مستويات الوصول الخاصة بهم مع معدلات الوصول.

  • النطاق. بنية في قيد نطاق خلال مساحة الاسم الذي يحويه أو الفئة ، أو البنية أو الوحدة النمطية.

    نطاق كل عضو بنية هو البنية الكاملة.

  • مدة البقاء. بنية نفسه ليس مدة بقاء المفتاح. بالأحرى، كُلّ مثيل لتلك البنية لها عمر مستقل عن المثيلات الأخرى.

    عمر مثيل يبدأ عندما يتم انشاؤها بواسطة جملة عامل تشغيل Visual Basic) New) تنتهي عندما ينتهي عمر المتغير الذي يحويها.

    لا يمكنك تمديد عمر مثيل البنية. يتم توفير تقريب لوظيفة للبنية الثابتة بواسطة وحدة نمطية. لمزيد من المعلومات، راجع كشف الوحدة النمطية.

    لدى أعضاء البنية أعمار استناداً إلى كيفية و أين تم تعريفهم. لمزيد من المعلومات، راجع "مدة بقاء" في عبارة Visual Basic) Class).

  • التأهيل. التعليمات البرمجية خارج بنية يجب أن يقوم بيتأهل اسم عضو باسم تلك البنية.

    إذا كانت التعليمات البرمجية داخل بنية متداخلة تقوم بمرجع غير مؤهل لعنصر برمجي, يقوم Visual Basic بالبحث عن العنصر أولاً في البنية المتداخلة ثم في البنيه التى يحتويه وما إلى ذلك إلى العنصر الحاوي الأبعد. لمزيد من المعلومات، راجع مراجع لعناصر معرّفه.

  • استهلاك الذاكرة كما هو الحال مع كل أنواع البيانات المركبة لا يمكنك بأمان حساب الاستهلاك الإجمالي للذاكرة من بنية عن طريق إضافة عمليات التخصيص التخزين الاسمي لأعضاءها معاً. علاوة على ذلك، لا يمكنك بأمان أن تفترض أن ترتيب المخزن في الذاكرة هو نفس ترتيب تعريفاتك. إذا كنت بحاجة إلى التحكم في تخطيط بنية التخزين يمكنك تطبيق StructLayoutAttribute السمة إلى Structure الكشف.

مثال

يستخدم المثال التالي كشف Structure لتعريف مجموعة من البيانات المرتبطة لموظف. ويُظهر استخدام Public, Friend، و Private الأعضاء لتعكس حساسية عناصر البيانات. ويُظهر أيضاً أعضاء الإجراء و الخاصية والحدث.

Public Structure employee
    ' Public members, accessible from throughout declaration region.
    Public firstName As String
    Public middleName As String
    Public lastName As String
    ' Friend members, accessible from anywhere within the same assembly.
    Friend employeeNumber As Integer
    Friend workPhone As Long
    ' Private members, accessible only from within the structure itself.
    Private homePhone As Long
    Private level As Integer
    Private salary As Double
    Private bonus As Double
    ' Procedure member, which can access structure's private members.
    Friend Sub calculateBonus(ByVal rate As Single)
        bonus = salary * CDbl(rate)
    End Sub
    ' Property member to return employee's eligibility.
    Friend ReadOnly Property eligible() As Boolean
        Get
            Return level >= 25
        End Get
    End Property
    ' Event member, raised when business phone number has changed.
    Public Event changedWorkPhone(ByVal newPhone As Long)
End Structure

راجع أيضًا:

المرجع

عبارة Visual Basic) Class)

كشف واجهة (Visual Basic)

كشف الوحدة النمطية

عبارة Vsual Basic) Dim)

عبارة const في (Visual Basic)

كشف Vsual Basic) Enum)

كشف الحدث

كشف العامل

كشف الخاصية

المبادئ

بنيات وفئات