تعريف الكائن المتغير

يجب استخدام عبارة تعريف عادية للتصريح عن كائن متغير. من أجل نوع بيانات، حدد Object (أي، نوع البيانات كائن) أو فئة أكثر تحديداً من الكائن المراد إنشاؤه.

التصريح عن متغير كـ Object هو مثل التصريح عنها كـ System.Object.

عندما تصرح عن متغيّر بفئة كائن معين, فإنه يمكن الوصول إلى الكل الأساليب والخصائص المعروضة من قبل تلك الفئة و فئات من التي ترثها. إذا تم تعريف المتغير مع Object، يمكنها الوصول إلى الفئة الأعضاء فقط Object , إلا إذا قمت بتشغيل Option Strict Off للسماح بالربط المتأخر.

بناء جملة التعريف

استخدم بناء الجملة التالية للتصريح كائن المتغير:

Dim variablename As [New] { objectclass | Object }

يمكنك أيضاً تحديد عام (Visual Basic), (Visual Basic) المحمي, صديق (Visual Basic), Protected Friend, خاص (Visual Basic), (Visual Basic) المشترك، أو ثابت (Visual Basic) في التصريح. تصلح التعريفات في المثال التالي:

Private objA As Object
Static objB As System.Windows.Forms.Label
Dim objC As System.OperatingSystem

ربط في وقت التشغيل "و" ربط مبكر

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

إذا كنت تعرف فئة معينة في وقت التحويل البرمجي يجب أن تقوم بتعريفه ككائن متغير ليكون من تلك الفئة. يسمى هذا ربط مبكر. الربط المبكر يقوم بتحسين الأداء و يضمن رمز الوصول إلى كل أساليب وخصائص فئة معينة. في تعريفات المثال السابق, إذا كان المتغير objA يستخدم فقط كائنات من فئة System.Windows.Forms.Label، يجب تحديد As System.Windows.Forms.Label في تعريف الخاص به.

الميزات الحسنة للربط المبكر

للتصريح عن كائن متغير كما يعطي فئة معينة العديد من المزايا:

  • التحقق من نوع تلقائي

  • ضمان الوصول إلى كل الأعضاء من فئة معينة

  • دعم Microsoft التحسس الذكي في محرر التعليمات البرمجية

  • إمكانية قراءة محسّنة للتعليمات البرمجية

  • أخطاء أقل في التعليمات البرمجية

  • اكتشاف الأخطاء وقت الترجمة بدلاً من وقت التشغيل

  • تنفيذ التعليمات البرمجية بشكل أسرع

الوصول إلى أعضاء المتغير الكائن

عند Option Strict تشغيل On، يمكن الوصول إلى متغير كائن فقط على أساليب وخصائص من الفئة مع الذي تقوم بتعريفه عليه. فيما يلي مثال يوضّح ذلك.

' Option statements must precede all other source file lines.
Option Strict On
' Imports statement must precede all declarations in the source file.
Imports System.Windows.Forms
Public Sub accessMembers()
    Dim p As Object
    Dim q As System.Windows.Forms.Label
    p = New System.Windows.Forms.Label
    q = New System.Windows.Forms.Label
    Dim j, k As Integer
    ' The following statement generates a compiler ERROR.
    j = p.Left
    ' The following statement retrieves the left edge of the label in pixels.
    k = q.Left
End Sub

في هذا المثال، p يمكن استخدام فقط أعضاء Object الفئة نفسها التي لا تتضمن خاصية Left. على اليد الأخرى q تم تصريح عنه ليكون من نوع Label، بحيث يمكن أن يستخدم كل الأساليب والخصائص من Label الفئة في System.Windows.Forms مساحة الاسم.

مرونة متغيرات الكائن

عند العمل مع الكائنات في التسلسل هرمي للتوريث, فإنه يتوفر لديك خيار الفئة التي سيتم استخدامها للتصريح الخاص بك عن كائن المتغيرات. في الإجراء هذا الخيار, يجب أن توازن مرونة كائن التعيين ضد الوصول إلى أعضاء الفئة. على سبيل المثال، ضع في الاعتبار التوريث الهرمي يقود إلى فئة System.Windows.Forms.Form :

Object

    Component

      Control

        ScrollableControl

          ContainerControl

            Form

افترض تعريف التطبيق الخاص بك يسمى فئة نموذجspecialForm، حيث يرث من فئة Form. بإمكانك تعريف متغير الكائن الذي يشير بشكل خاص إلىspecialForm، كما في المثال التالي يقوم بإظهار.

Public Class specialForm
    Inherits System.Windows.Forms.Form
    ' Insert code defining methods and properties of specialForm.
End Class
Dim nextForm As New specialForm

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

يمكنك إنشاء متغير كائن أكثر شمولية بالتصريح عنها لتكون من نوع Form، كما في المثال التالي بإظهارها.

Dim anyForm As System.Windows.Forms.Form

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

تتوفر كل أعضاء الفئة الأساسية لاشتقاق الفئات ولكن تتوفر الأعضاء الإضافية في الفئة المكتسبة إلى الفئة الأساسية.

راجع أيضًا:

المهام

كيفية القيام بما يلي: قم بتصريح كائن متغير ثم تعيين أحد الكائنات للصور في Visual Basic

كيفية القيام بما يلي: أعضاء الوصول لأحد الكائنات

المرجع

عامل تشغيل Visual Basic) New)

كشف الخيار الصارمِ

المبادئ

متغيرات الكائن في Visual Basic

تعيين الكائن المتغير

قيم الكائن المتغير

البرمجة اللا نوعية في Visual Basic

استدلال الـنوع المحلي