الاقتصادية المعقب الالكتروني نادي السيارات الرياضية كتاب واقلام الجزيرة
Sunday 18th July,2004 العدد : 78

الأحد 1 ,جمادى الاولى 1425

في بي دوت نت
الأعلان عن المتغيرات وتراخيص الوصول

نستكمل في هذه الحلقة التعرف علي مكونات لغة (في بي دوت نت) التي سنستخدمها في تطوير برامجنا التي نقوم بتصميمها باستخدام (فيجوال استوديو دوت نت) وكنا في الحلقة السابقة قد تحدثنا عن القيم التي تتعامل معها لغة (في بي دوت نت) وسنتحدث اليوم عن المتغيرات والإعلان عنها وعن مداها وعن تراخيص الوصول.
يتم الإعلان عن المتغير بإعطائه اسماً مناسباً, حيث يتم حجز مساحة لهذا المتغير داخل الذاكرة تتناسب مع نوع البيانات التي يقوم المتغير بتخزينها. للإعلان عن متغير جديد نقوم بكتابة التعريف في بداية الإجراء الذي سيستخدم هذا المتغير.
هكذا مثلاDim TXT As string حيث تعنى هذه العبارة إنشاء متغير باسمTXT من النوع string أي الهدف من استخدامه هو تخزين بيانات نصية وبذلك يمكنك تخصيص القيم للمتغير TXT هكذا:
TXT =this is a Text variable حيث يتم دائما وضع البيانات النصية بين قوسي التنصيص هكذا) كما يمكن أيضا تخصيص قيمة المتغير أثناء عملية الإعلان هكذا:
dim TXT As string = this is Text as variable
كما يمكنك أيضا الإعلان عن اكثر من متغير في نفس السطر.
فالسطر التالي على سبيل المثال، يقوم بتعريف المتغيرات Length وwidth وheight من النوع Integer والمتغيرين volume وarea من النوع Double وهكذا:
Dim length, width, height As INTEGER, area ,volume As Double.
مدى المتغيرات :
يحتوى كل متغير على مدى scope وهو الحيز الذي يعمل به المتغير ويستطيع البرنامج رؤيته والتعامل معه، فإذا ما قمنا مثلا بتعريف المتغير داخل أحد الإجراءات (سنتعرف عليها لاحقا)، فلا يمكنا الوصول إلى هذا المتغير واستخدامه إلا من داخل هذا الإجراء فقط وبالتالي لا يكون هذا المتغير متاحا لبقية أجزاء كود البرنامج. ويمكن تقسيم المتغيرات حسب المدى ومدة البقاء بالذاكرة كالتالي:
1 المتغير العام public variable :
وهو المتغير المستخدم من قبل المشروع بالكامل ويبقى هذا المتغير بالذاكرة طوال تنفيذ المشروع، كما يتم تعريفة باستخدام كلمة public بدلا من كلمة Dim كالتالي :
public TXT As string
2المتغير المحلي local variable :
وهو المتغير المستخدم من قبل الإجراء procedure أو الدوارة loop المعرف بداخلها (سيأتي ذكرها لاحقا أيضا)، ويبقى بالذاكرة فترة تنفيذ هذا الإجراء أو هذه الدوارة فقط كما يتم تعريفة باستخدام كلمة . 3Dim
3 متغير الوحدة النمطية Module variable :
وهو المتغير المستخدم من قبل الوحدة النمطية الموجود بداخلها فقط ويبقى المتغير بالذاكرة طوال تنفيذ الوحدة النمطية (أي طالما أن النموذج المصاحب للوحدة النمطية كان مفتوحا ، كما يتم تعريفة باستخدام كلمة privateأو كلمة Dim كالتالي:
private TXT As string
4 المتغير الساكن static variable :
وهو المتغير الذي يحتفظ بقيمته طوال تنفيذ البرنامج بغض النظر عن كونه داخل إجراء ويستخدم غالبا كعداد أي يتم زيادة قيمته باستمرار وبالتالي يجب معرفة القيمة الموجودة بداخلة من قبل حتى ولو تم الخروج من الإجراء المعرف بداخلة هذا المتغير، وهو بذلك يبقى بالذاكرة بمجرد الوصول إليه أن ينتهي تنفيذ البرنامج ولكنه يعمل فقط داخل الحيز الذي تم تعريفه بداخله سواء كان هذا الحيز إجراء أو وحدة نمطية. كالتالي:
static VALUE As Integer
تراخيص الوصول (Accessibility)
تحدد ترخيص الوصول للعنصر القدرة على استخدام هذا العنصر أو إمكانية القراءة والكتابة بهذا العنصر. وتتقرر هذه القدرة على أساس ترخيص الوصول الخاص بحاوية العناصر، بالإضافة إلى طريقة الإعلان عن العنصر.
فإذا كانت الحاوية التي يوجد بها العنصر لا يمكن الوصول إليها، فإن جميع العناصر التي تحويها لا يمكن الوصول إليها من خارج الحاوية أيضا، حتى في حالة استخدام ترخيص عامpublic (سنتناوله في السطور القادمة) في الإعلان عن هذه العناصر والوصول إليها من داخل الهيكل فقط. وهذه قائمة بأهم تراخيص الوصول.
1 الترخيص public :
عند استخدام عبارة public في عبارة الإعلان Dim، فإن العناصر المعلن عنها يمكن الوصول إليها من أي مكان داخل نفس المشروع، أو من المشروعات الأخرى التي تحتوي على مراجع لذلك المشروع، أومن وحدة التجميع (Assembly) المبنية من خلال ذلك المشروع.
وهذا مثال يوضح كيفية الإعلان عن عنصر باستخدام عبارة public .
public class for teamwork
ويمكن استخدام عبارة public على مستوى الوحدة، أو علي مستوي منطقة الأسماء أو علي مستوي الملف.
وهو ما يعني أننا نستطيع الإعلان عن العنصر العام(public Element) داخل ملف الكود أو داخل الحدة، أو داخل التصنيف، أو داخل هيكل البيانات،ولكننا لا يمكن أن نعلن عن العنصر العام (public Element) داخل الإجراء.
2 الترخيص (محمي) protected :
لا يمكن استخدام عبارة protected إلا على مستوى التصنيف،أو عند الإعلان عن عضو جديد بالتصنيف.
وعند استخدام كلمةprotected في الإعلان عن العناصر، فإن هذه العناصر يمكن الوصول إليها فقط من داخل التصنيف الذي تم الإعلان به أو من داخل تصنيف مشتق من هذا التصنيف. وهذا مثال للإعلان عن عنصر باستخدام عبارة protected class.
protected class for MyFamily
3 الترخيص (صديق)Friend :
نستخدم عبارة friend للإعلان عن العناصر التي يمكن الوصول إليها من داخل نفس المشروع، وليس من خارج المشروع.
وهذا مثال للإعلان عن عنصر باستخدام عبارة . friend
Friend string for my_program As string
ويمكن استخدام عبارة friend فقط على مستوى الوحدة، مستوى منطقة الأسماء، أو مستوى الملف.
يعني ذلك أننا نستطيع الإعلان عن عنصر صديق في ملف كود أو داخل وحدة، تصنيف، أو هيكل بيانات، وليس داخل إجراء.
4ترخيص(صديق محمي) protected friend :
يمكن استخدام عبارةprotected friend على مستوى التصنيف فقط، وعند الإعلان فقط عن عضو في تصنيف.
وعن طريق استخدام هاتين الكلمتين يمكن الوصول إلى العناصر المعلن عنها من داخل المشروع أو من داخل التصنيفات المشتقة من التصنيف الذي تم به الإعلان أو من كليهما. وهذا مثال للإعلان عن عنصر باستخدام عبارة protected friend .
protected friend string for my_program and My_Family As string
5 ترخيص(خاص) private :
نستخدم عبارة private للإعلان عن العناصر التي يمكن الوصول إليها من داخل نفس الوحدة، أو العناصر التي يمكن الوصول إليها من داخل نفس التصنيف، أو العناصر التي يمكن الوصول إليها من داخل نفس هيكل البيانات.
وهذا مثال للإعلان عن عنصر باستخدام عبارة . private
private number for me_only as integer
ويمكن استخدام private فقط على مستوى الوحدة، أو علي مستوي منطقة الأسماء، أو علي مستوى الملف وهو ما يعني أننا نستطيع الإعلان عن العنصر باستخدام عبارة private في ملف الكود، أو الإعلان عنها داخل وحدة تصنيف أو الإعلان عنها داخل هيكل بيانات، ولكننا لا نستطيع الإعلان عنها داخل إجراء.

..... الرجوع .....

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

ارشيف الاعداد الاسبوعية

ابحث في هذا العدد

للاشتراك في القائمة البريدية

للمراسلة


توجه جميع المراسلات التحريرية والصحفية الى chief@al-jazirah.com عناية رئيس التحرير
توجه جميع المراسلات الفنية الى admin@al-jazirah.com عناية مدير وحدة الانترنت

Copyright 2002, Al-Jazirah Corporation, All rights Reserved