جامعة أهلاً عرب

العودة   جامعة أهلاً عرب > كلية Microsoft.Net و Visual Studio > net. العام و Visual Studio

net. العام و Visual Studio قسم مخصص للنقاشات العامة التي لا تندرج حول اي قسم ، وكذلك الاخبار المختلفه حول هذه التقنية والمنتجات التابعة لها وكل المواضيع الخاصة بتحزيم التطبيقات مهما كانت لغة الدوت نت المستخدمه في بناءها

آخر 10 مشاركات اخفاء المعادلات في شريط الصيغة ( آخر مشاركة : aymz077 - مشاركات : 6 - )           »          استفسار عن طباعة شهادات مدرسية ( آخر مشاركة : aymz077 - مشاركات : 2 - )           »          اطلبو أي لعبة وسآتيكم بها أنشاْ الله ( آخر مشاركة : MOUSSAKHRAIS - مشاركات : 1 - )           »          نظام الصادر و الوارد ( مشاركات : 31 - )           »          المحاسب المسلم لادارة المنشئات التجارية ( مشاركات : 2 - )           »          ارجو المساعده الترقيم التلقائي في نوذج فرعي ( مشاركات : 2 - )           »          فرصة دراسية ( آخر مشاركة : almohib_alsaghir - مشاركات : 2 - )           »          اخوي توت عنخ امون الحقني....كارثة حصلت ( آخر مشاركة : tutankhamoun - مشاركات : 1 - )           »          UTM University ولا تتردد بالسؤال ( مشاركات : 179 - )           »          استفسار ( آخر مشاركة : angelwings - مشاركات : 8 - )

إنشاء موضوع جديد  إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 2007-12-25, 06:05 PM   #1 (permalink)
عميد كلية
 
الصورة الرمزية عبد الكريم كنعان
 
الجنس: ذكـــر
الجنسية: سوريا
بلد الإقامة: سوريا
الوظيفة: تكنلوجيا المعلومات - برمجة
المؤهل الدراسي: البكلوريوس
التخصص العلمي: تكنلوجيا المعلومات - هندسة حاسب آلي
كيف عرفت عن موقعنا: اعلان عن موقعكم في موقع اخر
تاريخ التسجيل: Aug 2007
المشاركات: 408
شكراً: 34
تم شكره 8 مرة في 5 مشاركة
معدل تقييم المستوى:2 عبد الكريم كنعان 50- اعتقد انك ستكون مشهوراً في الفترة القادمة.

إرسال رسالة عبر مراسل MSN إلى عبد الكريم كنعان
المفوضات (delegate) في .NET

مقدمة: تستخدم المفوضات في تعريف تواقيع التوابع أو الأحداث، وبالتالي فالمفوض يمثل توقيع لتابع أو حدث ما، وأعني توقيع التابع أي شكل التابع (ما فهمنا شي!!)، كلنا يعلم كيف نقوم ببناء تابع، دعني أقوم بالنيابة عنك بكتابة التابع التالي:

كود:
Code C#:
public int MaxOf2(int number1, int number2)
{
   if (number1 >= number2)
      return number1;
   else
      return number2;
}

كود:
Code VB.NET:
Public Function MaxOf2(ByVal number1 As Integer, ByVal number2 As Integer) As Integer
   If (number1 >= number2) Then
      Return number1
   Else
      Return number2
   End If
End Function



لو سألتك ما وظيفة هذا التابع، ربما ستقول لي: بعد الفحوصات تبين لي أن هذا التابع سخيف، كل ما هنالك أنه يأخذ عددين صحيحين ويعيد العدد الأكبر من بينهما.
عندها سأقول لك توقف قليلا، ودعنا نعود إلى كلامك الجميل من أجل أن نضع سوية الحروف على النقاط (عفوا النقاطعلى الحروف).
لقد قلت أن هذا التابع يأخذ عددين صحيحن ويعيد عدد صحيح (تقديم وتأخير) هذا ما أقصده بتوقيع التابع، إذا توقيع التابع هنا أنه تابع يأخذ عددين صحيحين ويعديد عدد صحيح، أصلا التوابع تختلف فيما بينها بتواقيها وبأسماءها.
أما ما تبقى من كلامك السابق فهو أنه يعيد العدد الأكبر من العددين السابقين، هذا الكلام يعبر عن وظيفة التابع،
وذلك من خلال جسم التابع، وعادة يتم توضيح وظيفة التابع من خلال اسمه، لاحظ MaxOf2.
إذا بعد ما وضحنا ما هو توقيع التابع دعنا نكمل ما بدأنا به، لنأخذ مثالا آخر:



كود:
Code C#:
class Program
{
   delegate void MathDelegate(int number1, int number2);

   static void Add(int number1, int number2)
   { 
      Console.WriteLine("{0} + {1} = {2}",
          number1, number2, number1 + number2);
   }

   static void Mult(int number1, int number2)
   { 
      Console.WriteLine("{0} * {1} = {2}",
          number1, number2, number1 * number2);
   }

   static void Main(string[] args)
   {
   }
}
كود:
Code VB.NET:
Module Module1
   Delegate Sub MathDelegate(ByVal number1 As Integer, ByVal number2 As Integer)

   Sub Add(ByVal number1 As Integer, ByVal number2 As Integer)
      Console.WriteLine("{0} + {1} = {2}", _
          number1, number2, number1 + number2)
   End Sub

   Sub Mult(ByVal number1 As Integer, ByVal number2 As Integer)
      Console.WriteLine("{0} * {1} = {2}", _
          number1, number2, number1 * number2)
   End Sub

   Sub Main()
      Dim math As MathDelegate

      Math = New MathDelegate(AddressOf Add)
      Math(3, 4)
   End Sub
End Module
نلاحظ أنه لدينا تابع من أجل القيام بعملية جمع عددين صحيحين وإظهار الناتج على نافذة منفذ الأوامر Command، وتابع لضرب عددين صحيحين وإظهار الناتج، لاحظ أن تواقيع هاذين التابع متطابقين ممثلين بالمفوض السابق، إذا ففد قمنا بتعريف مفوض له شكل تواقيع التابعين السابقين، لاحظ أن المفوض له برامترين من نوع عدد صحيحين ويعيد لا شيء void تماما كالتوابع Add و Mult.

التعديل الأخير تم بواسطة عبد الكريم كنعان ; 2007-12-25 الساعة 06:18 PM.
عبد الكريم كنعان غير متواجد حالياً   رد مع اقتباس
مرحبا عزيزي الزائر
لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل.
إنشاء موضوع جديد  إضافة رد

أدوات الموضوع
انواع عرض الموضوع

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

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


الساعة الآن 10:03 PM.


Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd
إن الكتابات المنشورة في الجامعة ملك لأصحابها و هي لا تعبر عن وجهة نظر إدارة الجامعة


Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53