منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الدرس الرابع والثلاثون - ال Anonymous Methods - فقط في C# - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138)
+---- الموضوع : الدرس الرابع والثلاثون - ال Anonymous Methods - فقط في C# (/showthread.php?tid=5628)



الدرس الرابع والثلاثون - ال Anonymous Methods - فقط في C# - RaggiTech - 14-10-12

كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

درسنا اليوم عن الطرق المجهولة Anonymous Methods . إذا كنت قد استوعبت الدرس السابق عن ال Delegates فأنت تدرك أن بامكانك استدعاء دالة باستخدام متغير من النوع Delegate .

وبعد الدرس الخاص ب Events اصبحت تدرك ان بامكانك اضافة اسم دالة ليمثل الحدث الذي قمت ببرمجته بالشكل التالي مثلاً :



كود :
[FONT=Tahoma]t.SomeEvent += new SomeDelegate(MyEventHandler);[/FONT]


والآن لنفترض انك لا تريد استدعاء الدالة سوى في هذا المكان فقط ، لذا سيكون من المكلف تعريف الدالة ومن ثم استدعاءها في Delegate ، هنا يظهر لنا ما يعرف باسم Anonymous Methods حيث بامكانك تعريف الدالة وسط الكود .

لنرى الكود التالي مثلاً :


كود :
t.SomeEvent += delegate{
Console.WriteLine("Some Text");
}


نعم هذا صحيح ولكن فقط مع C# . كما ترى اصبح الآن بامكانك تعريف الدالة في موقع استخدامها فقط ، يمكن ايضاً ان تكون الدالة تستقبل عدة بارميترات بالشكل التالي مثلاً :


كود :
t.SomeEvent += delegate(object sender, CarEventArgs e){
Console.WriteLine("Some Text {0}",e.msg);
}


ايضاً بامكان ال Anonymous method ان تصل إلى المتغيرات الموجودة في الدالة التي تم تعريفها فيها .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .