![]() |
|
|||||||
| net. العام و Visual Studio قسم مخصص للنقاشات العامة التي لا تندرج حول اي قسم ، وكذلك الاخبار المختلفه حول هذه التقنية والمنتجات التابعة لها وكل المواضيع الخاصة بتحزيم التطبيقات مهما كانت لغة الدوت نت المستخدمه في بناءها |
| آخر 10 مشاركات |
|
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
عميد كلية
الجنس: ذكـــر الجنسية: سوريا بلد الإقامة: سوريا الوظيفة: تكنلوجيا المعلومات - برمجة المؤهل الدراسي: البكلوريوس التخصص العلمي: تكنلوجيا المعلومات - هندسة حاسب آلي كيف عرفت عن موقعنا: اعلان عن موقعكم في موقع اخر تاريخ التسجيل: Aug 2007
المشاركات: 408
شكراً: 34
تم شكره 8 مرة في 5 مشاركة
معدل تقييم المستوى:2
![]() |
المفوضات (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
التعديل الأخير تم بواسطة عبد الكريم كنعان ; 2007-12-25 الساعة 06:18 PM. |
|
|
|
| مرحبا عزيزي الزائر |
| لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل. |
|
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
|
|
|