إجراءات الخاصية

إجراء الخاصية هي سلسلة من العبارات Visual Basic التي تعالج خاصية مخصصة على وحدة نمطية أو الفئة أو البنية. إجراءات خاصية تُعرف أيضًا الخاصية accessors .

Visual Basic يوفر خاصية إجراءات التالية:

  • إجراء Get يقوم بإرجاع قيمة الخاصية. يسمى ذلك عند الوصول إلى خاصية في تعبير.

  • إجراء Set يعين خاصية إلى القيمة بما في ذلك مرجع كائن. وهي يتم استدعاؤها عند تعيين القيمة إلى خاصية.

تحديد إجراءات خاصية عادةً في أزواج باستخدام Get و Set يمكن تعريف عبارات ولكن إما إجراء فقط إذا كانت خاصية (للقراءة فقطالحصول على كشف) أو () للكتابة فقطكشف Vsual Basic) Set)).

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

للمقارنة بين خصائص ومتغيرات راجع الفروق بين الخصائص و المتغيرات في Visual Basic.

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

تم تعريف خاصية نفسها من قبل حظر من تعليمات برمجية إحاطتها داخل عبارة كشف الخاصية و End Property . يظهر داخل حظر هذا إجراء لكل خاصية ككتلة داخلي إحاطتها داخل تعريف عبارة (Get أو Set) و في مطابقة تعريف End .

بناء الجملة للتصريح عن خاصية و إجراءاتتها يتم كما يلي:

[Default] [modifiers] Property propertyname[(parameterlist)] As datatype

[accesslevel] Get

' Statements of the Get procedure.

' The following statement returns expression as the property's value.

Return expression

End Get

[accesslevel] Set[(ByVal newvalue As datatype)]

' Statements of the Set procedure.

' The following statement assigns newvalue as the property's value.

lvalue = newvalue

End Set

End Property

modifiers يمكنها تحديد مستوى الوصول و معلومات بخصوص التحميل الزائد، تجاوز، مشاركة و التظليل بالإضافة ما إذا كانت خاصية للقراءة فقط أو للكتابة فقط. access level على Get أو Set يمكن أن يكون أي مستوى أكثر تقييداً من إجراء مستوى الوصول المعين للخاصية نفسه. لمزيد من المعلومات، راجع كشف الخاصية.

نوع البيانات

نوع خاصية و مبدأ مستوى الوصول التي تم تعريفها في عبارة Property ، وليس في إجراءات الخاصية. يمكن أن يكون لل خاصية نوع بيانات واحد فقط. على سبيل المثال، لا يمكن تعريف خاصية لتخزين قيمة Decimal ولكن لاسترداد قيمة Double.

مستوى الوصول

ومع ذلك، يمكنك تحديد المستوى وصول أساسي لخاصية ما وإعادة تقييد المستوى الوصول بأحد خاصيته إجراءات. على سبيل المثال، يمكنك تعريف خاصية Public ثم قم بتعريف إجراء Private Set . إجراء Get تبقى Public. يمكنك تغيير مستوى الوصول من واحد فقط من إحدى الخصائص إجراءات, كما يمكنك فقط جعلها أكثر تقييداً من مستوى الوصول الأساسي. لمزيد من المعلومات، راجع كيفية القيام بما يلي: تقوم بتعريف خاصية مع مستويات وصول مختلطة.

تعريف معلمة

إعلان لكل معلمة بنفس الطريقة التي تستخدمها بالنسبة إجراءات فرعية، إلا أنه يجب أن يكون آلية التمرير ByVal.

بناء الجملة لكل معلمة في المعلمة قائمة كما يلي:

[Optional] ByVal [ParamArray] parametername As datatype

إذا كانت معلمة اختيارية فعليك أيضاً توفير القيمة افتراضية كجزء من تعريف الخاص به. بناء الجملة لتحديد القيمة افتراضية كما يلي:

Optional ByVal parametername As datatype = defaultvalue

قيمة الخاصية

في إجراء Get يتم توفير القيمة المرجعة لتعبير استدعاء قيمة الخاصية.

إجراء Set ، جديد يتم تمرير القيمة خاصية إلى معلمة من العبارة Set . إذا قمت بوضوح من تعريف معلمة يجب التصريح عنها مع نفس نوع بيانات الخاصية. إذا لم تقم بتعؤيف معلمة ، المحول البرمجي يستخدم المعلمة الضمنية Value لتمثل القيمة الجديدة لتعيين إلى خاصية.

بناء جملة الاستدعاء

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

بناء الجملة لاتصال ضمني لاجراء Set كما يلي:

propertyname[(argumentlist)] = expression

بناء الجملة لاتصال ضمني لاجراء Get كما يلي:

lvalue = propertyname[(argumentlist)]

Do While (propertyname[(argumentlist)] > expression)

شكل توضيحي للتعريف و الاستدعاء

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

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

يظهر المثال التالي المكالمات النموذجية إلى الإجراءات خاصية fullName.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

راجع أيضًا:

المهام

كيفية القيام بما يلي: إنشاء خاصية

كيفية القيام بما يلي: الاتصال بإجراء الخصائص

كيفية القيام بما يلي: تعريف واستدعاء الخاصية الافتراضية في Visual Basic

كيفية القيام بما يلي: وضع إحدى القيم في خاصية

كيفية القيام بما يلي: الحصول على القيمة من الخاصية

المبادئ

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

إجراءات الدالة

إجراءات عامل التشغيل

معلمات إجراء و وسيطات

الفروق بين الخصائص و المتغيرات في Visual Basic