تعريف الكائن المتغير
يجب استخدام عبارة تعريف عادية للتصريح عن كائن متغير. من أجل نوع بيانات، حدد 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 :
افترض تعريف التطبيق الخاص بك يسمى فئة نموذج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