11-01-23, 10:40 PM
(آخر تعديل لهذه المشاركة : 11-01-23, 10:56 PM {2} بواسطة rabia al hamdani.)
السلام عليكم ورحمة الله وبركاته
البرمجة المتقدمة => المفوضات : Delegate
– في دوال إضافة وحذف وتعديل البيانات ، يوجد أوامر تتكرر في جميع الدوال وهي :-
[b]1- أمر حذف البيانات المعروضة في اداه عرض البيانات DGV.[/b]
[b]2- أمر جلب البيات المحدثة من قاعدة البيانات[/b]
[b]3- أمر ملئ البيانات المحدثة في اداه عرض البيانات DGV.[/b]
– هذه الاوامر أساسية بعد كل عمليه يقوم بها المستخدم في عمليات الاضافة والحذف والتعديل ،
يمكنك كتابة هذة الاوامر في سطر برمجي واحد فقط في كل داله ،
وذالك بأنشاء دالة تقوم بتنفيذ الاوامر المذكورة ومن ثم استدعائها في دوال الاضافة والحذف والتعديل بكتابة سطر برمجي واحد ، ولكن أن كان لديك اوامر أخرى تقوم بتنفيذها بعد عمليات الاضافة والحذف والتعديل مثل أنقاص المخازن او زيادتها أو غيرة .
* طبعا يمكنك ان تكتب أوامر تحديث البيانات في دالة وأوامر انقاص المخازن او زيادتها في داله وكتابه اي اوامر تريدها في دوال اخرى ، ومن ثم إستدعاء كل داله في دوال الاضافة والحذف والتعديل ،
وإذا اردت ان تقوم بكتابة سطر برمجي واحد فقط في دوال الاضافة والحذف والتعديل يقوم بأستدعاء جميع الدوال التي تريد تنفيذها .
* كيف سيكون ذالك ؟
– يوجد في مفاهيم البرمجة المتقدمة مفهوم او تقنية تسمى التفويض والتفويض المتعدد .
* تمكنك هذة التقنية من انشاء مفوض لأي دالة تريد تنفيذها ، وبدلا من إستدعاء الدالة الاساسية يتم أستدعاء المفوض ،وتمكنك كذالك من إنشاء مفوض ينفذ عدة دوال عند استدعائه.
* طبعا عند تعريف المفوض يجب ان يكون من نفس نوع الدوال وكذالك نفس انواع واعداد البراميترات التي في الدوال ،لذالك في مثالنا هذا يمكننا إنشاء داله تحديث البيانات وداله انقاص او زيادة المخزون من نوع Void
ولا تحتوي على براميترات بالشكل التالي :-
كود :
– public static void UpdateData() {… };
– public static void UpdateStock() {… };
ومن ثم نقوم بأنشاء مفوض من نفس نوع الدوال والبراميترات بالشكل التالي :-
كود :
– public delegate void myDelegate();
ومن ثم إنشاء كائنات مستنسخة من المفوض واسناد لهم الدوال التي سيقومون بتنفيذها باشكل التالي :-
1- إنشاء كائن مستنسخ من المفوض واسناد له دالة تحديث البيانات بالشكل التالي :-
كود :
– myDelegate myDel_Up_data = new myDelegate(UpdateData);
2- إنشاء كائن مستنسخ من المفوض واسناد له دالة انقاص او زيادة المخزون بالشكل التالي :-
كود :
– myDelegate myDel_Up_Stock = new myDelegate(UpdateStock);
3- إنشاء كائن مستنسخ من المفوض واسناد المفوض الاول والثاني بالشكل التالي :-
كود :
– myDelegate myDel_UD_and_US = myDel_Up_data + myDel_Up_Stock ;
وعند أستدعاء المفوض الثالث في دوال الاضافه والحذف والتعديل يقوم بتنفيذ الدالتين معا ،
وبهاذه التقنية يمكنك أستدعاء عدة دوال في سطر برمجي واحد فقط بالشكل التالي :-
كود :
– myDel_UD_and_US();
* طبعا المفوضات مهمة جدا في البرمجة المتقدمة وييستفيد منها المبرمجين كثيرا وتستخدم بشكل أساسي للأحداث الخاصة بالادوات البرمجية مثل
كود :
– Click
– DoubleClick
– Load
– …
* فلكل حدث Delegate خاص به ،
وكذالك تستخدم المفوضات في العمليات التي تعمل مع التطبيق او النظام بشكل متزامن ،
حيث أنها تجعل تطبيقك او نظامك يعمل ويتفاعل مع المستخدم بشكل اسرع ، وغيرة .
مصدر المعلومات :-
المفوضات (Delegate)
[b]اسأل المولى ان قد وفقني في افادتكم في هذة المعلومات
[/b]
[b]وفق الله الجميع[/b]