كيفية القيام بما يلي: قم بإخفاء متغير مع نفس اسم المتغير الخاص بك تماماً

يمكنك إخفاء متغير بتظليله، وهذا يعني، بإعادة تعريفه مع متغير بنفس الاسم. يمكنك تظليل المتغير الذي تريد إخفائه بطريقتين:

  • التظليل عبر نطاق يمكن تظليله خلال نطاق بواسطة إعادة تعريفة داخل منطقة فرعية في المنطقة التي تحتوي على المتغير الذي تريد إخفاء.

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

طريقتان لإخفاء متغير

لإخفاء متغير بواسطة التظليل عبر النطاق

  1. قم بتحديد المنطقة التي تعرف المتغير الذي تريد إخفائه وحدد منطقة فرعية لإعادة تعريفه بها مع متغير خاص بك.

    منطقة متغير

    منطقة فرعية مسموح بها لإعادة تعريفه

    الوحدة النمطية

    فئة ضمن وحدة نمطية

    الفئة

    فئة فرعية داخل الفئة

    إجراء داخل فئة

    لا يمكن إعادة تعريف متغير إجراء في مقطع داخل ذلك الإجراء على سبيل المثال في إنشاء If... End If أو التكرار الحلقي For .

  2. قم بإنشاء المنطقة الفرعية إذا لم تكن موجودة بالفعل.

  3. ضمن المنطقة الفرعية، قم بكتابة عبارة Vsual Basic) Dim) لتعريف المتغير المظلل.

    عندما تشير التعليمات البرمجية داخل المنطقة الفرعية إلى اسم المتغير, يقوم المحول البرمجي بحل المرجع إلى المتغير المُظلِل الخاص بك.

    يوضح المثال التالي التظليل خلال نطاق بالإضافة إلى المرجع الذي يتجاوز التظليل.

    Module shadowByScope
        ' The following statement declares num as a module-level variable.
        Public num As Integer
        Sub show()
            ' The following statement declares num as a local variable.
            Dim num As Integer
            ' The following statement sets the value of the local variable.
            num = 2
            ' The following statement displays the module-level variable.
            MsgBox(CStr(shadowByScope.num))
        End Sub
        Sub useModuleLevelNum()
            ' The following statement sets the value of the module-level variable.
            num = 1
            show()
        End Sub
    End Module
    

    يقوم المثال السابق بتعريف متغير num في مستوى وحدة نمطية و مستوى إجراء (في إجراء show). المتغير المحلي num يظلل متغير مستوى الوحدة النمطية num ضمن show، حتى يتم تعيين المتغير المحلي إلى 2. ومع ذلك، لا يوجد أي متغير محلي ليظلل num في إجراء useModuleLevelNum. ولذلك، useModuleLevelNum يعيّن قيمة متغير مستوى الوحدة النمطية إلى 1.

    استدعاء MsgBox داخل show يتجاوز آلية التظليل بواسطة تأهيل num مع اسم الوحدة النمطية. ولذلك، تعرض متغير مستوى الوحدة النمطية بدلاً من المتغير المحلي.

لإخفاء متغير بواسطة تظليله عبر التوريث

  1. تأكد من أن المتغير الذي تريد إخفائه تم تعريفه في فئة، وعلى مستوى فئة (خارج أي إجراء). و إلا لا يمكنك تظليله خلال التوريث.

  2. قم بتعريف فئة مشتقة من فئة المتغير إذا لم يكن موجود مسبقاً.

  3. داخل الفئة المشتقة ، قم بكتابة عبارة Dim لتعريف المتغير الخاص بك. قم بإضافة الكلمة الأساسية الظلال (Visual Basic) في التصريح .

    عندما تشير التعليمات البرمجية في الفئة المشتقة إلى اسم المتغير, يقوم المحول البرمجي بحل المرجع إلى المتغير الخاص بك.

    يوضح المثال التالي التظليل من خلال التوريث. يجعل مرجعين, أحدهما يصل إلى متغير التظليل و الأخر يتجاوز التظليل.

    Public Class shadowBaseClass
        Public shadowString As String = "This is the base class string."
    End Class
    Public Class shadowDerivedClass
        Inherits shadowBaseClass
        Public Shadows shadowString As String = "This is the derived class string."
        Public Sub showStrings()
            Dim s As String = "Unqualified shadowString: " & shadowString &
                 vbCrLf & "MyBase.shadowString: " & MyBase.shadowString
            MsgBox(s)
        End Sub
    End Class
    

    يقوم المثال السابق بتعريف المتغير shadowString في الفئة الأساسية و يظللها في الفئة المشتقة. إجراء showStrings في الفئة المشتقة يعرض الإصدار التظليلي للسلسلة عندما يكون الاسم shadowString غير مؤهل. ثم يقوم بعرض الإصدار المظلل عندما يكون shadowString مؤهل مع الكلمة الأساسية MyBase.

برمجة نشطة

الـتظليل يقدم أكثر من إصدار متغير واحد يحمل نفس الاسم. عندما يقوم كشف تعليمات برمجية بالإشارة إلى اسم المتغير ، الإصدار الذي يحل المحول البرمجي المرجع يعتمد على العوامل مثل موقع كشف التعليمات البرمجية و وجود سلسلة مؤهلة. يؤدي هذا إلى زيادة خطر الإشارة إلى إصدار غير مقصود لمتغير مظلل. يمكنك التقليل من هذه المخاطر بواسطة التأهيل الكامل لكل المراجع إلى متغير مظلل.

راجع أيضًا:

المهام

كيفية القيام بما يلي: إخفاء متغير متوارث

كيفية القيام بما يلي: الوصول إلى متغير مخفي بواسطة الفئة المشتقة

المرجع

الـتجاوز (Visual Basic)

المبادئ

التظليل في Visual Basic

الفروق بين النسخ و التجاوز

Me, My, MyBase, and MyClass في Visual Basic

أساسيات التوريث

موارد أخرى

مراجع لعناصر معرّفه