تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثاني والثلاثون - ال Delegates
#2
Delegetes :

لو اردنا تعريف Delgates لمجموعة دوال ، اول ما نحتاج إليه ان تكون هذه الدوال من نفس عدد البارميترات . ايضاً لها نفس ال input وال output ، لذا سيكون ال Delegate الخاص بدوالنا بالشكل التالي :

C#:

كود :
public delegate int myDelegate(int value);


vb.net:

كود :
Public Delegate Function myDelegate(ByVal value As Integer) As Integer

والآن كل ما علي في جملي الشرطية ان احدد لهذا التفويض - إن صحت الترجمة - الدالة المسؤول عنها ، لذا ستكون شروطنا المختصرة بالشكل التالي :
C#:

كود :
if (Operation == 0)

كود :
[FONT=Tahoma] {[/FONT]
[FONT=Tahoma]myDelegate aDelegate = new myDelegate(ConvertDToEG);[/FONT]
[FONT=Tahoma]result = aDelegate(userInput);[/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]else if (Operation == 1)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]myDelegate aDelegate = new myDelegate(ConvertRSToD);[/FONT]
[FONT=Tahoma]result = aDelegate(userInput);[/FONT]
[FONT=Tahoma]}[/FONT]
vb.net:


كود :
If Operation = 0 Then

كود :
[FONT=Tahoma] Dim aDelegate As New myDelegate(ConvertDToEG) [/FONT]
[FONT=Tahoma]result = aDelegate(userInput) [/FONT]
[FONT=Tahoma]ElseIf Operation = 1 Then [/FONT]
[FONT=Tahoma]Dim aDelegate As New myDelegate(ConvertRSToD) [/FONT]
[FONT=Tahoma]result = aDelegate(userInput) [/FONT]
[FONT=Tahoma]End If [/FONT]
ايضا بامكانك تأخير الشرط الأخير الذي يقوم بتنفيذ ال Delegate للنهاية ، او تكرار استخدامها مرة أخرى ، حيث ان ال aDelegate قد اصبحت تعرف اي دالة تختص بتنفيذ هذه العملية الآن .

لن اتوسع كثيراً في هذا العالم ، هناك الكثير من النقاط في ال Delegates ولكني تجاوزت بعضها لعدم الحاجة المتكررة إليها ، فيما تجاوزت نقاط أخرى لإني لم استطع فهمها بطريقة كاملة تجعلني استطيع شرحها .

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


الردود في هذا الموضوع
الدرس الثاني والثلاثون - ال Delegates - بواسطة Raggi Tech - 14-10-12, 04:19 PM


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


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