14-10-12, 04:15 PM
Generic Collection :
كما تعرفنا في الدرس السابق ان بامكاننا عمل Generic Class ، اصبح الدور الآن على عمل Generic Collection ، سنقوم بعمل كلاس يستقبل عدة كلاسات ويقوم بعدة عمليات مثل Add,Delete ... etc ، كما تعلمنا سابقاً ، هذا مثال على Collection ما :
C#:
vb.net:
طبعاً بامكانك اضافة الكثير من الخصائص وربما بعض الخصائص الغير متوفرة اصلاً للبحث وخلافه ، هذا ما يسمى بال Generic Collection حيث يمكن في مراحل لاحقة الاعتماد عليه بدل ال Colelctions العادية حيث يمكن ان يستقبل Car او Employee .... إلى غير ذلك من الخيارات ، بالشكل التالي مثلاً :
C#:
vb.net:
أو حتى ارقام :
C#:
vb.net:
هنا ظهرت لنا مشكلة تتعلق بكون ال Generic Collection الخاص بنا يحتوي على خصائص مثل .name لعرضها ، وهذا ما لا يتوفر مثلاً لكل الكلاسات او للارقام مثلاً ، من هنا جاءت لنا الكلمة المحجوزة Where والتي سنتحدث عنها في الدرس القادم .
كما تعرفنا في الدرس السابق ان بامكاننا عمل 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 والتي سنتحدث عنها في الدرس القادم .
