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

كما تعرفنا في الدرس السابق ان بامكاننا عمل Generic Class ، اصبح الدور الآن على عمل Generic Collection ، سنقوم بعمل كلاس يستقبل عدة كلاسات ويقوم بعدة عمليات مثل Add,Delete ... etc ، كما تعلمنا سابقاً ، هذا مثال على Collection ما :

C#:


كود :
[FONT=Tahoma]public class MyCollection<T>[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]private List<T> myList = new List<T>();[/FONT]
[FONT=Tahoma]public T GetItem(int pos)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]return myList[pos]; [/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public void AddItem(T it)[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]myList.Add(c); [/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]public void ClearCars()[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]myList.Clear(); [/FONT]
[FONT=Tahoma]}[/FONT]
[FONT=Tahoma]}[/FONT]

vb.net:

كود :
[FONT=Tahoma]Public Class MyCollection(Of T)
Private myList As New List(Of T)()
Public Function GetItem(ByVal pos As Integer) As T
Return myList(pos)
End Function
Public Sub AddItem(ByVal it As T)
myList.Add(c)
End Sub
Public Sub ClearCars()
myList.Clear()
End Sub
End Class [/FONT]

طبعاً بامكانك اضافة الكثير من الخصائص وربما بعض الخصائص الغير متوفرة اصلاً للبحث وخلافه ، هذا ما يسمى بال Generic Collection حيث يمكن في مراحل لاحقة الاعتماد عليه بدل ال Colelctions العادية حيث يمكن ان يستقبل Car او Employee .... إلى غير ذلك من الخيارات ، بالشكل التالي مثلاً :

C#:

كود :
[FONT=Tahoma]MyCollection<Car> myCars = new MyCollection<Car>();
myCars.AddItem(temp);
MyCollection<Employee> myCars = new MyCollection<Employee>();
myCars.AddItem(tempEmployee);[/FONT]

vb.net:

كود :
[FONT=Tahoma]Dim myCars As New MyCollection(Of Car)()
myCars.AddItem(temp)
Dim myCars As New MyCollection(Of Employee)()
myCars.AddItem(tempEmployee) [/FONT]

أو حتى ارقام :

C#:

كود :
MyCollection<int> myCars = new MyCollection<int>();
myCars.AddItem(12);

vb.net:

كود :
Dim myCars As New MyCollection(Of Integer)()
myCars.AddItem(12)


هنا ظهرت لنا مشكلة تتعلق بكون ال Generic Collection الخاص بنا يحتوي على خصائص مثل .name لعرضها ، وهذا ما لا يتوفر مثلاً لكل الكلاسات او للارقام مثلاً ، من هنا جاءت لنا الكلمة المحجوزة Where والتي سنتحدث عنها في الدرس القادم .
}}}
تم الشكر بواسطة:


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


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


يقوم بقرائة الموضوع: