|
|| أجعلنا الصفحة الرئيسية || أضفنا للمفضلة || |
|
|||||||
| منتدى البرمجة فيجوال بيسيك ، فيجوال سي ++ ، دلفي ، أكسيس ، أوراكل C, C++, C#, VB, VB.Net, .. etc |
![]() |
|
|
LinkBack | أدوات الموضوع |
|
|
#1 |
|
مهندس خبير
![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: 02 2009
المشاركات: 1,040
شكراً: 0
تم شكره 3 مرة في 2 مشاركة
![]() |
- ستستخدم delegates فى تدعيم وتشغيل ال Event - الافضل انة يعطيك القدرة على مناداة Method لم تحددة وقت التصميم ببساطة ال delegates يقوم ب encapsulate ال Method فهو مؤشر لها ويمكنك مناداتها عن طريقة وعلى الرغم ان ال Method ليست object لكنها ذات physical location فى الذاكرة وهذا ما يعطينا القدرة على التأشير عليها . لتعريف الDelegates كود: delegate return-type name(Parameter-list); يرجى مرعاة ان Return Type يجب ان يكون نفسة المستخدم مع ال Method محل التأشير وكذلك ال Parameter list مثال: لو افترضنا ان دى ال Method الى عايزين نعملها Delegate كود: public static string RemoveSpace(string s) { string Ts = ""; for (int i = 0; i < s.Length; i++) { if (s[i] != ' ') Ts += s[i]; } return Ts; } لاحظ ال Return Type و ال Parameter هيكون ال Delegate بالشكل دة كود: public delegate string de(string s); هننشأ ال Object بتاع ال Delegate ونعطية البارمتر الى هو ال Method ونعملة Invoke كود: private void button26_Click(object sender, EventArgs e) { de Myde = new de(RemoveSpace); MessageBox.Show(Myde.Invoke(" I Love C# So Much")); } خصائص-- -Method Group Conversion الخاصية دى اضيفت مع C# 2.0 ومعناها ببساطة ادخال اسم ال Method مباشرة الى ال Delegate Name بدون استخدام new كود: private void button26_Click(object sender, EventArgs e) { de Myde = RemoveSpace; MessageBox.Show(Myde.Invoke(" I Love C# So Much")); } -Multicasting الخاصية دى معناها انك تقدر تضيف اكتر من Method لنفس ال Delegate مدام لهم نفس ال Return type و ال Parameters عن طريق += كود: private void button29_Click(object sender, EventArgs e) { //Method Name RemoveSpaceMulticasting devoid Myde = RemoveSpaceMulticasting; Myde += dg.replaceSpacesMulticasting; Myde("I Love C# SO Much"); Myde -= dg.RemoveSpaceMulticasting; Myde("I Love C# SO Much"); } -Anonymous Methods احياناً بتعمل Method خصيصاً للتأشير عليها لإرسال ال Delegate مثلاً ك Parameter ل Method اخرى او للاستفادة من Synchronization ماذا لو قلت لك انة يمكنك تعريف ال Method الى جوار الموشر مباشرة بإستخدام كلمة delegate ثم البارمتر ويلهم جسم الMethod نفسها وبعد غلق الاقواس ; كود: delegate(string s) {}; والكود كود: public delegate string deAnonymous(string s); private void button30_Click(object sender, EventArgs e) { deAnonymous dg = delegate(string s) { string Ts = ""; for (int i = 0; i < s.Length; i++) { if (s[i] != ' ') Ts += s[i]; } return Ts; }; MessageBox.Show(dg.Invoke("I Love C# So Much")); } -Covariance and Contravariance قلنا من قبل ان ال Return type بتاع ال Delegate لازم يكون مثل بتاع ال Method لكن الخاصية دى بغير الموقف شوية يعنى ممكن يكون Return بتاع ال Method يكون Drived Class من ال Return بتاع ال Delegate فى آمان الله المصدر: منتدى المهندس كوم كلية الهندسة |
|
|
|
![]() |
| مواقع النشر (المفضلة) |
| الكلمات الدلالية (Tags) |
| مقدمة, افتراضي, delegates, خصائص |
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
| أدوات الموضوع | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| ماهي خصائص vag-com | barca | هندسة السيارات - Automotive Engineering | 3 | 07-04-2011 11:53 |
| برنامج لتحويل خصائص موبايلك إلى خصائص الويندوز xp | غدير تون | منتدى عالم الجوال | 0 | 24-04-2010 03:40 |
| خصائص وفضائل شهر رمضان | نغم&مها | المنتدى العام - Public Forum | 0 | 07-08-2009 06:14 |
| شرح خصائص | طلعت خيري | هندسة السيارات - Automotive Engineering | 5 | 04-12-2008 05:13 |
| من خصائص العمران في الاسلام | مهندسة\مروة | الهندسة المعمارية - Architecture | 0 | 29-05-2008 09:19 |