(Visual Basic) المشترك

تحديد أن واحد أو أكثر من عناصر البرمجة المُعلَنة مقترنة مع فئة أو بنية بشكل كبير و ليس مع مثيل فئة محددة أو بنية.

ملاحظات

عند استخدام المشتركة

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

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

القواعد

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

  • معدلات مجتمعة. لا يمكنك تحديد Shared مع الـتجاوز (Visual Basic), للتجاوز في (Visual Basic), Visual Basic) NotOverridable), MustOverride في (Visual Basic)، أو ثابت (Visual Basic) في تصريح نفسه.

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

    يستدعي المثال التالي إجراء المشتركة بواسطة عبارة IsNaN Double بنية.

    If Double.IsNaN(result) Then MsgBox("Result is mathematically undefined.")

  • المشاركة الضمنية. لا يمكنك استخدام Shared في التعديل عبارة const في (Visual Basic)، ولكن يتم مشاركة ثوابت ضمنياً. وبنفس الطريقة، يتعذر تعريف عضو من وحدة نمطية أو واجهة ليكون Shared، ولكن كانت ضمنيًا مشاركة.

السلوك

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

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

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

    Sub main()
        shareTotal.total = 10
        ' The preceding line is the preferred way to access total.
        Dim instanceVar As New shareTotal
        instanceVar.total += 100
        ' The preceding line generates a compiler warning message and
        ' accesses total through class shareTotal instead of through
        ' the variable instanceVar. This works as expected and adds
        ' 100 to total.
        returnClass().total += 1000
        ' The preceding line generates a compiler warning message and
        ' accesses total through class shareTotal instead of calling
        ' returnClass(). This adds 1000 to total but does not work as
        ' expected, because the MsgBox in returnClass() does not run.
        MsgBox("Value of total is " & CStr(shareTotal.total))
    End Sub
    Public Function returnClass() As shareTotal
        MsgBox("Function returnClass() called")
        Return New shareTotal
    End Function
    Public Class shareTotal
        Public Shared total As Integer
    End Class
    

    في المثال السابق، المحول البرمجي قام بإنشاء رسالة تحذير كل مرة تصل التعليمة البرمجية للمتغير المشترك total خلال مثيل. في كل حالة جعل الوصول مباشرةً من خلال الفئة shareTotal و لا يجعل استخدام أي مثيل. في حالة استدعاء الإجراء returnClass، هذا يعني أنه لا ينتج استدعاء إلى returnClass، بحيث لا يتم تنفيذ إجراء إضافي من عرض "returnClass() دالة تسمى".

المعدل Shared يمكن استخدامه في تلك السياقات.

عبارة Dim

كشف الحدث

عبارة الدالة

كشف العامل

كشف الخاصية

عبارة Sub

راجع أيضًا:

المرجع

الظلال (Visual Basic)

ثابت (Visual Basic)

المبادئ

العمر في Visual Basic

الـإجراءات في Visual Basic

موارد أخرى

البنيات

كائنات و فئات في Visual Basic