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

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

نواصل في هذا الدرس مع واحدة من التطورات الجديدة مع .net framework 2.0 ، هي ال generics لتعطي بعداً جديداً لمفهوم ال overloading ، لنفترض مثالاً ما للطباعة بالشكل التالي :

C#:

كود :
[FONT=Tahoma]public static void print(int x)
{
Console.WriteLine("Print As Integer {0}", x);
}[/FONT]
[FONT=Tahoma]public static void print(long x)
{
Console.WriteLine("Print As Long {0}", x);
}[/FONT]
[FONT=Tahoma]public static void print(string x)
{
Console.WriteLine("Print As String {0}",x);
}[/FONT]


vb.net:


كود :
[FONT=Tahoma]Public Shared Sub print(ByVal x As Integer)
Console.WriteLine("Print As Integer {0}", x)
End Sub [/FONT]
[FONT=Tahoma]Public Shared Sub print(ByVal x As Long)
Console.WriteLine("Print As Long {0}", x)
End Sub [/FONT]
[FONT=Tahoma]Public Shared Sub print(ByVal x As String)
Console.WriteLine("Print As String {0}", x)
End Sub [/FONT]


الكود كما هو واضح قام بعمل ثلاث دوال بنفس الاسم لاستقبال بارميترات مختلفة ، وهكذا تجد انك تستطيع في الكود استدعاء الدالة الطباعة للارقام او لل longs او للنصوص ، جرب عدة عمليات لطباعة انواع مختلفة وشاهد جملة الطباعة ، على سبيل المثال الأوامر التالية :

كود :
[FONT=Tahoma]print("Ahmed");
print(12);
print(1000000000000);[/FONT]


سيكون ناتج الطباعة بالشكل التالي :


ال Generics ستغير المفهوم نوعاً ، حيث ان بامكانك الآن تعريف دالة لا تستقبل نوعاً معيناً من المتغيرات ، بل هي تستقبل <T> وتتعامل معه على هذا الاساس ، لذا قد نستطيع افتراض الدوال الثلاث السابقة بالشكل التالي :

C#:

كود :
[FONT=Tahoma]public static void print<T>(T x)
{
Console.WriteLine("Print As {0}: {1}",typeof(T), x);[/FONT]

[FONT=Tahoma]}[/FONT]


vb.net:

كود :
[FONT=Tahoma]Public Shared Sub print(Of T)(ByVal x As T)
Console.WriteLine("Print As {0}: {1}", GetType(T), x)

End Sub [/FONT]

والآن في حالة تطبيقنا لنفس المثال السابق ، سوف يكون الناتج كالتالي :



كانت هذه مقدمة سريعة لل Generics ، نواصل في دروس قادمة التعرف على نقاط أخرى حول هذا الموضوع ، لا تنس ان هذا درس من سلسلة دروس نطبق فيها مبادئ تتعلق ب LINQ حيث ان كل ما يتعلق بالانواع المجهولة والدوال المجهولة ... الخ يتعلق بشكل أو بآخر بال LINQ .
}}}
تم الشكر بواسطة:


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


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


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