الشبكة العربية لمطوري الألعاب

مبتدئ  kenan aboud مشاركة 21

امكانية الاعلان عن متغير من نوع Static


يوجد اختلاف جوهرى بين التركيب Structure و الفئات Classes فى انه يمكننا الاعلان عن متغير من نوع Static داخل احد الاجراءت الفرعية الموجودة داخل الـــ Class كما بالصورة التالية : -

بمجرد النقر مرتيت متتاليتين على نوع الخطاء يتوجه المؤشر الى التركيب Structure ويقف عند بداية الاعلان عن المتغير من نوع Static زعليه فان الـــ Class وحده هو الذى يمكننا الاعلان من خلاله عن متغير من نوع Static وكنا قد تعرضنا لمثل هذا النوع من المتغيرات فى الايام السابقه من دورتنا .



مبتدئ  kenan aboud مشاركة 22

سوف ندخل فى موضع هام جدا من اجزاء VB.NET OOP 2005 هذا الجزء اسمه


اعادة الاعلان عن نفس الاجراء Overloading



ما الذى يعنيه هذا التعريف بعنى انه يمكن الاعلان عن اكثر من اجراء بنفس الاسم الا نه توجد مجموعة شروط نتعرض لها كما يلى : -

1- اختلاف عدد المعاملات الخاصة بالاجراء : - لاحظ معى الصورة التالية :-

اذا نظرنا الى الصورة السابقة نجد مايلى :-

1- تم الاعلان عن اجراء فرعى باسم Show ولم نقم بتمرير اية معاملات اليه اى عند النداء على هذا الاجراء يتم كتابة اسمه فقط .
2- تم الاعلان عن اجراء فرعى اخر بنفس اسم الاجراءالفرعى الاول Show الا اننا قمنا بتمرير معامل لهذا الاجراء اى عند النداء على هذا الاجراء يجب تمرير قيمة لهذا المعامل .

عند النداء على هذين الاجرائين ما الذى يحدث : -
بالطبع للنداء على اى اجراء يتم كتابة اسم هذا الاجراء واذا كان لهذا الاجراء معاملات يتم كتابة قيم لهذه المعاملات ,,,

فكيف يتم التعامل فى حالتنا هذه ؟

1- يتم النداء بالفعل على الاجراء فاذا لم يتم تمرير اية معاملات له فهذا يعنى اننا نريد تنفيذ الاجراء الاجراء الاول .
2- اما اذاتم تمرير قيمة للمعامل الخاص بهذا الاجراء فهذا يعنى اننا نريد تنفيذ الاجراء الثانى .
وسيقوم مترجم اللغة من تلقاء نفسه بتنفيذ الاجراء الذى تنطبق عليه شروط النداء .



مبتدئ  kenan aboud مشاركة 23

لستكمال موضوع Overloading

لاحظ معى الصورة التالية :-

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

عند تنفيذ البرنامج نظرا لاننا قمنا بكتابة اسم الاجراء فقط ولم نقم بتمرير ثيم للمعامل قام مترجم اللغة بتنفيذ الاجراء الاول وظهرت قيمة المتغير التى تم تمريرها اليها فى نفس الاجراء

طيب نجرب نمرر معامل ونشوف الممكن يحصل فى الصورة التالية : -

فى هذه المرة عند تنفيذ البرنامج فما الذى سيحدث ؟

نظرا لانه تم تمرير قيمة الى الاجراء فانه سيقوم بصورة تلقائية بتنفيذ الاجراء الثانى لانه تم تمرير يمة الى المعامل الموجود مع الاجراءكما نرى من الصورة السابقة .

نظرا لانه تم تمرير قيمة الى الاجراء





مبتدئ  kenan aboud مشاركة 24

الصورة المرفقة


مبتدئ  kenan aboud مشاركة 25

اتفقنا فى هذه الشرط على اختلاف عدد المعاملات لاحظ معى الصورة التالية : -

ظهرت رسالة الخطاء السابقة ولكن لماذا ظهرت هذه الرسالة : -

لنفكر فى الامر بصورة موضوعية ماهو وجه الاختلاف بين الاجرائين : -

نجد ان الاجراء الاول من غير معاملات و اليس كذلك اى لن يتم تمرين قيم لاية معاملات الى هذا الاجراء عند النداء عليه بينما الاجراء الثانى بمعامل واحد من نوع اختيار اى يمكن تمرير قيمة للمعامل وايضا عدم تمرير اية قيم .

اذا ما الفرق بين الاثنين نجد انه لا يوجد فرق نهائى بين الاثنين وبالتالى لامكن عمل هذا الصورة نهائية .

وبالتالى يمكننا رؤية الصورة التالية : -


مبتدئ  kenan aboud مشاركة 26

الصورة المرفقة


مبتدئ  kenan aboud مشاركة 27

2 - اختلاف انواع المعاملات الخاصة بالاجراء :-

فى بعض الاحيان قد يتساوى عدد المعاملات الخاصة بالاجراءات عند النداء عليه ........ وركز اختلاف انواع المعاملات وليس اسماء المعاملات و السبب فى ذلك اننا عند النداء على الاجراء و تمرير قيمة للمعامل هل نحدد اسم المعامل الذى نمرر قيمتة بالطبع لا وانما نقوم بتمرير قيمة لهذا المعامل القيمة تحدد نوع هذا المعامل وليس اسمه وبالتالى عند تمرير القيمة يتم تحديد الا الاجراءات نلريد التنفيذ .

لاحظ معى الصورة التالية : -



مبتدئ  kenan aboud مشاركة 28

نجد أنه لا يمكن ارسال قيمة نصية الى متغير من نوع رقمى .... وبالتالى فمعنى ظهور هذه القيمة يعنى انه تم تنفيذ الاجراء الثانى

فاذا كان النداء على الاجراء بهذا الشكل : -

فى هذه الحالة نظرا لاننا قمنا بارسال قيمة من نوع رقمى فان هذا يعنى تنفيذ الاجراء الاول الخاص بمعامل نوع رقمى


مبتدئ  kenan aboud مشاركة 29

سوف أكمل لاحقاً

محترف مشرف عبد اللطيف حاجي علي مشاركة 30

بداية أود شكرك على هذه المشاركات الضخمة والعزيرة،
لكني أقترح بشدة أن تجعل تعاملك مع إدارة الموقع في ما يتعلق بالمقالات ليتم وضع مشاركاتك في قسم المقالات العلمية وترك المنتدى للمواضيع التي تحتاج للنقاش لأن هذا يضمن التنظيم في المنتدى (بالطيع يمكنك وضع رابط لمقالاتك ومناقشة بقية الأعضاء يموضوع المقالة في المنتدى)

يمكنك إرسال مقالاتك على الرابط: mailto:info@instructurez.com?subject=[ARTICLE]%20ArticleName

وشكراً،

عبد اللطيف حاجي علي
مبرمج
In|Framez