تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مثال] شرح مثال عن المفوضات (Delegate)
#1
Lightbulb 
السلام عليكم ورحمة الله وبركاته
البرمجة المتقدمة => المفوضات : 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]
الرد }}}
تم الشكر بواسطة: Hamza lads


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مثال عن الشجرة المحاسبية بأداة TreeListView asemshahen5 2 3,416 04-03-24, 09:31 PM
آخر رد: alnagi
  [مثال] مثال انشاء زر دائري Kamil 0 223 08-01-24, 07:39 PM
آخر رد: Kamil
Lightbulb [مثال] شرح مثال عن Overloading Function التحميل الزائد للدوال rabia al hamdani 0 1,248 11-01-23, 11:17 PM
آخر رد: rabia al hamdani
Lightbulb [مثال] شرح مثال عن إستخدام تقنية Static في الأنظمة البرمجية rabia al hamdani 0 783 11-01-23, 11:02 PM
آخر رد: rabia al hamdani
Lightbulb [مثال] شرح مثال عن المسارات المتعددة (MultiThreading) rabia al hamdani 0 773 11-01-23, 10:53 PM
آخر رد: rabia al hamdani
Lightbulb [مثال] شرح مثال عن (Try-Catch) أقتناص الاخطاء Catching Exceptions rabia al hamdani 0 793 11-01-23, 10:34 PM
آخر رد: rabia al hamdani
  مثال عن شاشة طلبات المطبخ . asemshahen5 0 1,351 21-11-21, 03:46 PM
آخر رد: asemshahen5
  مثال عن إضافة خصائص و أحداث للادوات . asemshahen5 3 2,440 24-10-21, 10:11 PM
آخر رد: zageteh
  السلام عليكم ورحمة الله و بركاته هذا مثال عن تنشيط المنتج و تشفير السيريال . asemshahen5 5 3,857 15-08-21, 01:05 PM
آخر رد: devante.celvin
  مثال عن الداتا غريد فيو [منقول]. asemshahen5 0 1,701 23-12-20, 08:11 PM
آخر رد: asemshahen5

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم