14-10-12, 04:14 PM
Structure and Class Generics :
في الدرس السابق تعرفنا على ال methods التي تطبق ال Generics ، ايضاً ال Classes وال Structs يمكنها تطبيق هذا المفهوم لبعض البيانات بها ، سنفترض مثال ال class وما ينطبق على ال class ينطبق على ال struct .
لنفترض كلاس يحتوي على البضائع ، وحيث ان لدينا نوعين من البضائع يحتوي النوع الأول على الاسم وهي تلك البضائع التي يتم تصنيعها في المحل ( انوع من الجبن او الزبادي ) وبضائع أخرى جاهزة تحتوي على الباركود ، بهذه الطريقة نسنتج ان حقل Identify قد يحتوي على اسم في بعض البضائع ورقم في بضائع أخرى .
الحل التقليدي كان ليعتبر وجود كلاسين منفصلين ، أو في أحسن الظروف وضع قيمة منطقية لتحديد اذا ما كنت ساستخدم حقل ال name ام حقل ال numbner ، لكن مع ال Generics تم تغيير هذا المفهوم ، في هذه الحالة سيصبح الكلاس بالشكل التالي :
c#:
vb.net:
والآن يمكنني تعريف كائن من النوع الأول بالشكل التالي :
C#:
vb.net:
أو من النوع الثاني بالشكل التالي :
C#:
vb.net:
هناك الكثير من التطبيقات على هذا المفهوم ، نواصل في الدرس القادم إن شاء الله .
في الدرس السابق تعرفنا على ال methods التي تطبق ال Generics ، ايضاً ال Classes وال Structs يمكنها تطبيق هذا المفهوم لبعض البيانات بها ، سنفترض مثال ال class وما ينطبق على ال class ينطبق على ال struct .
لنفترض كلاس يحتوي على البضائع ، وحيث ان لدينا نوعين من البضائع يحتوي النوع الأول على الاسم وهي تلك البضائع التي يتم تصنيعها في المحل ( انوع من الجبن او الزبادي ) وبضائع أخرى جاهزة تحتوي على الباركود ، بهذه الطريقة نسنتج ان حقل Identify قد يحتوي على اسم في بعض البضائع ورقم في بضائع أخرى .
الحل التقليدي كان ليعتبر وجود كلاسين منفصلين ، أو في أحسن الظروف وضع قيمة منطقية لتحديد اذا ما كنت ساستخدم حقل ال name ام حقل ال numbner ، لكن مع ال Generics تم تغيير هذا المفهوم ، في هذه الحالة سيصبح الكلاس بالشكل التالي :
c#:
كود :
public class product<T>
{
private T Identify;
public product(T val)
{
Identify = val;
Console.WriteLine(Identify);
}
}كود :
Public Class product(Of T)
Private Identify As T
Public Sub New(ByVal val As T)
Identify = val
Console.WriteLine(Identify)
End Sub
End ClassC#:
كود :
product<int> prd = new product<int>(1001);كود :
Dim prd As New product(Of Integer)(1001)C#:
كود :
product<string> prd2 = new product<string>("Some Product");كود :
Dim prd2 As New product(Of String)("Some Product")