كشف الخاصية
يقوم بتعريف اسم الخاصية و إجراءات الخاصية المستخدمة إلى لتخزين و استرداد قيمة الخاصية.
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
الأجزاء
attributelist
اختياري. قائمة السمات التي يمكن تطبيقها إلى هذه خاصية أو Get أو إجراء Set. راجع قائمة سمة.Default
اختياري. تحدد أنّ هذه الخاصية هي الخاصية الافتراضية للفئة أو البنية والتي تم تعريفها. الخصائص الافتراضية يجب أن يقبل معلمات كما يمكن تعيينه وإعادة استرداده بدون تعيين اسم خاصية. إذا تم تعريف خاصية كـ Default، لا يمكنك استخدام Private على الخاصية أو على أي من إجراءات خاصيته.accessmodifier
اختياري على عبارة Property و على الأكثر أحد إجراءات Get و عبارات Set. يمكن أن يكون أحد الخيارات التالية:propertymodifiers
اختياري. يمكن أن يكون أحد الخيارات التالية:MustOverride Overrides
NotOverridable Overrides
Shared
اختياري. انظر (Visual Basic) المشتركShadows
اختياري. انظر الظلال (Visual Basic)ReadOnly
اختياري. انظر للقراءة فقط (Visual Basic)WriteOnly
اختياري. انظر Visual Basic) WriteOnly)name
مطلوبة. اسم الخاصية انظر أسماء العنصر المعرفparameterlist
اختياري. قائمة أسماء المتغيرات المحلية تمثل معلمات هذه خاصية، و المعلمات الإضافية الممكنة من الإجراء Set . انظر قائمة المعلمةreturntype
مطلوب إذا كان Option Strict هو On. نوع البيانات من القيمة التي تم إرجاعها بواسطة هذه خاصية.Implements
اختياري. يشير إلى أنّ هذه الخاصية تطبّق خاصية واحدة أو أكثر, كل واحدة معرّفة في واجهة تم تطبيقها بواسطة تلك الخاصية و تحتوي على فئة أو بنية. انظر جملة التنفيذimplementslist
مطلوب إذا كان Implements يتم توفيره. قائمة خصائص يتم تطبيقها.implementedproperty [ , implementedproperty ... ]
كل implementedproperty يحتوي على بناء الجملة والأجزاء التالية:
interface.definedname
جزء
الوصف
interface
مطلوبة. عنصر يحتوي على اسم واجهة تطبيق هذه خاصية بواسطة فئة أو بنية.
definedname
مطلوبة. الاسم الذي تم عرّفت به الخاصية interface.
Get
اختياري. مطلوبة إذا تم تمييز خاصية WriteOnly. يبدأ خاصية إجراء Get التي تستخدم لتقوم بإرجاع قيمة الخاصية.statements
اختياري. كتلة من عبارات إلى تنفذ داخل Get أو إجراء Set.End Get
تنهي خاصية إجراء Get .Set
اختياري. مطلوبة إذا تم تمييز خاصية ReadOnly. يبدأ خاصية إجراء Set التي تستخدم لتقوم بتخزين قيمة الخاصية.End Set
تنهي خاصية إجراء Set .End Property
ينهي تعريف هذه الخاصية.
ملاحظات
عبارة Property يقدم تعريف خاصية. يمكن أن خاصية الإجراء Get (للقراءة فقط) ، الإجراء Set (write فقط) أو كلا (القراءة / الكتابة). يمكنك حذف Get و إجراء Set عند استخدام خاصية تنفيذ تلقائي. لمزيد من المعلومات، راجع خصائص التنفيذ التلقائي في (Visual Basic).
يمكنك استخدام Property فقط عند مستوى الفئة. وهذا يعني تعريف السياق لمتغير يجب أن يكون فئة، بنية، وحدة نمطية، إجراء أو مقطع و لا يمكن أن يكون ملف المصدر، مساحة الاسم، أو واجهة. لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.
بشكل افتراضي, الخصائص تستخدم وصول العام. يمكنك ضبط إحدى خصائص مستوى الوصول مع معدّل وصول على عبارة Property و يمكنك بشكل اختياري ضبط أحد إجراءات الخاصية الخاصة بها إلى أكثر تقييداً المستوى الوصول.
يقوم Visual Basic بتمرير معلمة إلى إجراء Set أثناء تعيينات الخاصية. إذا لم توفر معلمة لSet، تستخدم بيئة التطوير المتكاملة (IDE) معلم ضمني باسم value. تتضمن المعلمة القيمة بحيث يتم تعيينه إلى الخاصية. يمكنك عادةً تخزين هذه القيمة في متغير محلي خاص وإعادته كلما يتم استدعاء إجراء Get .
القواعد
مستويات وصول مختلطة. إذا كنت تقوم بتعريف خاصية القراءة / الكتابة يمكنك بشكل اختياري تحديد مستوى مختلف لأحد Get أو إجراء Set ولكن ليس كلاهما. في حالة القيام بهذا مستوى وصول الإجراء يجب أن يكون أكثر تقييداً من مستوى وصول خاصية. على سبيل المثال، إذا تم التصريح عن خاصية Friend، تقوم بتعريف إجراء Set Private، ولكن ليس Public.
إذا كنت تقوم بتعريف الخاصية ReadOnly أو WriteOnly (إجراء خاصية مفردةGet أو Set، على الترتيب) يمثل كل خاصية. يتعذر تعريف مستوى وصول مختلف مثل هذا إجراء، بسبب تعيين مستويين الوصول للخاصية.
نوع الإرجاعكشف الـ Property يمكن أن يعرف نوع البيانات للقيمة التي يرجعها. يمكنك تحديد أي نوع بيانات أو اسم لقائمة تعداد ، فئة، بنية أو واجهة.
إذا لم تعين رمز التبديل returntype/t:Object
التنفيذ. إذا كانت هذه خاصية تستخدم Implements يجب أن تحتوي كلمة أساسية أو يحتوي على الفئة أو البنية Implements العبارة التالية مباشرة الخاصة به Class أو Structure كشف. عبارة الـ Implements يجب أن يضم كل واجهة محددة في implementslist. ومع ذلك، الاسم الذي يعرّف واجهة Property (في definedname) لم يكن إلى يكون هو نفسه اسم خاصية (in name).
السلوك
الخروج من إجراء الخاصية. عند Get أو Set إرجاع إجراء استدعاء تعليمات برمجية ، يستمر التنفيذ مع عبارة التالية التي استدعاء.
عبارات Exit Property و Return تسبب خروج فوري من إجراء خاصية. أي عدد من عبارات Exit Property و Return يمكن أن تظهر أي مكان في الإجراء، كما يمكن خلط عبارات Exit Property و Return .
قيمة الإرجاع. لإرجاع قيمة من Get إجراء، يمكنك إما تعيين القيمة إلى اسم الخاصية أو تضمينه في Return العبارة. يعين المثال التالي القيمة المرجعة بخاصية تسمية quoteForTheDay ثم يستخدم Exit Property عبارة للرجوع.
Private quoteValue As String = "No quote assigned yet."
ReadOnly Property quoteForTheDay() As String Get quoteForTheDay = quoteValue Exit Property End Get End Property
إذا كنت تستخدم Exit Property بدون تعيين قيمة إلى name، Get إجراء إرجاع قيمة افتراضية لـ "نوع بيانات خاصية.
The Return تعين العبارة في نفس الوقت Get إجراء يرجع القيمة وإنهاء الإجراء. يـوضح المثال التالي ذلك.
Private quoteValue As String = "No quote assigned yet."
ReadOnly Property quoteForTheDay() As String Get Return quoteValue End Get End Property
مثال
يقوم المثال التالي بتعريف خاصية في فئة.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class
راجع أيضًا:
المرجع
المبادئ
خصائص التنفيذ التلقائي في (Visual Basic)