الخاصية بأبسط أشكالها (Property )

الخاصية بأبسط أشكالها (Property  )


السلام عليكم ..

مقالتي اليوم يتحدث عن الخاصية Property  وكيفية برمجتها في الفيجوال بيسك

صحيح نسيت أن أقول لكم أن هذا الدرس خاص للمبتدئين ^_^

الخاصية عبارة عن صفة يحملها ذالك الكائن ( Object  ) قد تأخذ متغير أو تعيد لنا قيمة

إذاً ... سيتبادر لذهنك ما لفرق بينها وبين الوظيفة ( Function  ) ؟

حسنا دعني أمثل لك الخاصية بالصندوق أو الدرج .. تضع فيه شيء ما ثم تعود لتفتحه وتقرأ ما فيه ..

إذا فهي قد تستقبل قيمه وتحفظها أو تعيد لنا قيمة محفوظة

بعكس الوظيفة (Function  ) التي تعالج متغيرات وتستدعي إجراءات معينة وتعيد لنا قيمه بعد معالجتها ( Process  ) ..

حسنا فهمنا الآن مفهوم الخاصية

قد تتسائل ايضا لماذا لانتعامل مع المتغير بشكل مباشر دون تضمينه فيه خاصية ( أي نعرف متغير بشكل Public  ) ونرسل له القيمة ونقرأها منه , ما الفائدة من الخاصية اذا ؟؟

الجواب بسيط

الخاصية لها عدة ميزات منها :

1- وضع معالجة بداخلها مثلا عندما نرسل لها رقم تزيده بواحد وتحفظه لديها

2- امكانية استقبال اكثر من متغير وحفظهم في خاصية واحدة كخاصية الحجم ( طول و عرض )

3- امكانية تقيد نوع المدخلات بمتغيرات ذات نوع محدد مثلا خاصية تستقبل ( نص ) فقط

أعلم أخي .. أن الخاصية من حيث القيمة ثلاث انواع

1-      خاصية ( تقبل القراءة والكتابة ) Read & Write

سنأتي عليها بالتفصيل بالأسفل

2-      خاصية ( تقبل القراءة فقط ) Read Only Property  

كالتالي :

  Public ReadOnly Property UserAccount() As Double

        Get

            Return mUserAccount

        End Get

    End Property

لاحظ انه تم حذف الجزء الخاص بالكتابة ( Get  )

 

3-      أخيراً خاصية ( تقبل الكتابة فقط ) Write Only Property

Public WriteOnly Property UserAccount() As Double

        Set(ByVal value As Double)

            mUserAccount = value

        End Set

    End Property

لاحظ انه تم حذف الجزء الخاص بالكتابة (Set )

 

جميل .. إلى هنا اعتقد أن الامور واضحة ..

الخاصية تنقسم بداخلها لقسمين

 Get  

و

Set  

قد نستغني عن أحدهما حسب نوعها في الأعلى (Get  تأخذ و Set  تعيد الخاصية )

إذا البناء العام للخاصية كالتالي ( قراءة وكتابة )

Private isDisigenMode As Boolean = False

 

Private Property DisigenMode() As Boolean

        Get

            Return isDisigenMode

        End Get

        Set(ByVal value As Boolean)

            isDisigenMode = value

        End Set

    End Property

لاحظ أولا أننا نستطيع تغير طريقة الوصول للخاصية (public أو Private  )

وبشكل عام فإن Get  و Set  يأخذان طريقة الوصول الأساسية للخاصية

بمعنى ابسط

عندما تكون الخاصية public فإن Get  و Set   يكونان public

لكن الآن منذ إصدارة .net2 أصبح بإمكانك أن تجعل أحد أقسام الخاصية public  والآخر Private  أو حتى Protected مثلا..

لتقيد الوصول إليه كالتالي :

Public Property DisigenMode() As Boolean

        Get

            Return isDisigenMode

        End Get

        Private Set(ByVal value As Boolean)

            isDisigenMode = value

        End Set

    End Property

الآن يمكنك تعريف خاصية رقمية تسميها UserAccount  

وترسل لها المبلغ وتعيد قيمته في أي وقت

كالتالي:

Private mUserAccount As Double

 

    Public Property UserAccount() As Double

        Get

            Return mUserAccount

        End Get

        Set(ByVal value As Double)

            mUserAccount = value

        End Set

    End Property

إذا ويمكننا استدعاء الخاصية كالتالي


write Property


Form1.UserAccount = Form1.UserAccount + 5.0

أخيراً أود أن أنبهك أن الخاصية تظل تحتفظ بالقيمة مادام البرنامج يعمل على ذاكرة الجهاز ولا تحتفظ بالقيمة عند إغلاق البرنامج

الردود

آراء أعضاء الموقع وتعليقاتهم

هل أنت مشترك بموقع تقنيات ؟ بادر بالإشتراك الآن


يجب عليك التسجيل لتستطيع كتابة تعليق