14-10-12, 04:18 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
نواصل رحلتنا مع ال advanced .net programming ، موعدنا اليوم مع ال Delegates .
قبل ان نشرح تركيبها وكيفية التعامل معها ، سنقوم بشرح لماذا نقوم باستخدامها .
لنفترض عدة دوال تستقبل int وتعيد int ايضاً خاصة بعمليات التحويل ، وهي على الشكل التالي :
C#:
كود :
[FONT=Tahoma]public int ConvertEGToD(int EG)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return EG * 5.45;[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public int ConvertRSToD(int RS)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return RS * 3.75;[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public int ConvertEGToRS(int EG)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return EG * 1.45;[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public int ConvertDToRS(int D)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return D * 3.75;[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public int ConvertDToEG(int D)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return D / 5.45;[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public int ConvertRSToEG(int RS)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return RS / 1.45;[/FONT]
[FONT=Tahoma]}[/FONT]
كود :
[FONT=Tahoma]Public Function ConvertEGToD(ByVal EG As Integer) As Integer [/FONT]
[FONT=Tahoma]Return EG * 5.45 [/FONT]
[FONT=Tahoma]End Function [/FONT]
[FONT=Tahoma]Public Function ConvertRSToD(ByVal RS As Integer) As Integer [/FONT]
[FONT=Tahoma]Return RS * 3.75 [/FONT]
[FONT=Tahoma]End Function [/FONT]
[FONT=Tahoma]Public Function ConvertEGToRS(ByVal EG As Integer) As Integer [/FONT]
[FONT=Tahoma]Return EG * 1.45 [/FONT]
[FONT=Tahoma]End Function [/FONT]
[FONT=Tahoma]Public Function ConvertDToRS(ByVal D As Integer) As Integer [/FONT]
[FONT=Tahoma]Return D * 3.75 [/FONT]
[FONT=Tahoma]End Function [/FONT]
[FONT=Tahoma]Public Function ConvertDToEG(ByVal D As Integer) As Integer [/FONT]
[FONT=Tahoma]Return D / 5.45 [/FONT]
[FONT=Tahoma]End Function [/FONT]
[FONT=Tahoma]Public Function ConvertRSToEG(ByVal RS As Integer) As Integer [/FONT]
[FONT=Tahoma]Return RS / 1.45 [/FONT]
[FONT=Tahoma]End Function [/FONT]
طبعاً يمكننا عملهم في دالة واحدة وارسال متغير يمثل رقم التحويل ، لكننا لن نستطيع عمل ذلك مثلاً مع دوال اكبر ومختلفة ، لذا فهذا المثال للتوضيح .
الآن في برنامجنا سنقرأ البيانات من المستخدم ، ومن ثم نستخدم جملة شرط if او switch لتحديد اي دالة سنقوم بارسال البيانات إليها ، هذا مختصر للكود المكتوب :
C#:
كود :
if (Operation == 0)
كود :
[FONT=Tahoma] result = ConvertDToEG(userInput);[/FONT]
[FONT=Tahoma]else if(Operation == 1)[/FONT]
[FONT=Tahoma]result = ConvertRSToD(userInput);[/FONT]
كود :
If Operation = 0 Then
كود :
[FONT=Tahoma] result = ConvertDToEG(userInput) [/FONT]
[FONT=Tahoma]ElseIf Operation = 1 Then [/FONT]
[FONT=Tahoma]result = ConvertRSToD(userInput) [/FONT]
[FONT=Tahoma]End If [/FONT]
من أجل هذا وجدت ال Delegates ، وهي ما سنتعرف عليها في الجزء القادم من هذا الدرس .