ما شاء الله تبارك الله ما شاء الله لا قوة إلا بالله , اللهم إني أسالك الهدى والتقى والعفاف والغنى
منتدى المهندس كوم كلية الهندسة
فيديو المهندس - صور المهندس - برامج المهندس - مدونة المهندس
 

||  أجعلنا الصفحة الرئيسية  ||  أضفنا للمفضلة ||


العودة   منتدى المهندس كوم كلية الهندسة > منتدى الكمبيوتر والتكنولوجيا > منتدى البرمجة

منتدى البرمجة فيجوال بيسيك ، فيجوال سي ++ ، دلفي ، أكسيس ، أوراكل C, C++, C#, VB, VB.Net, .. etc

السادة الاعضاء الكرام حدث فقد فى المرفقات وذلك عند النقل الى سرفر جديد ولم نستطيع استرجاع كل المرفقات فارجوا من السادة الاعضاء اعادةرفع المرفقات مره اخرى ونعتزر للجميع عن هذا الخطاء
إضافة رد
 
LinkBack أدوات الموضوع
قديم 16-03-2009, 11:45   #1
مهندس خبير
 
تاريخ التسجيل: 02 2009
المشاركات: 1,040
شكراً: 0
تم شكره 3 مرة في 2 مشاركة
Mr Msae3 is on a distinguished road
افتراضي افتراضي مقدمة عن خصائص ال C# Delegates 

Why Delegates

- ستستخدم 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

فى آمان الله

آخر مواضيعي 0 العملاق Nitro PDF Professionl لإنشاء وتحرير ملفات ال PDF العالية الجودة بكل سهولة ..!
0 افتراضي اصنع اسطوانة تنصيب ذاتي لبرامجك
0 حول واجهة برنامج الفوتوشوب من عربي لانجلش
0 برنامج Psiloc Space Doubler لمضاعفة حجم الذاكرة و ضغط الملفات بشكل رهيب
0 لا تــتـعــجـ!!ــب ●••● فــقـط اقـرأ بـــصمــت‎
Mr Msae3 غير متواجد حالياً   رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
مقدمة, افتراضي, delegates, خصائص


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are معطلة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ماهي خصائص 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

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

الساعة الآن 05:41.


Powered by vBulletin® Version 3.8.5, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
TranZ By Almuhajir
Jelsoft Enterprises Ltd