14-10-12, 03:52 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
نواصل الآن دروسنا مع ال interfaces ، سنتعرض الآن ولثلاث دروس قادمة عن كيفية عمل فئة أو كلاس يقوم بعمل implement لل interface معين ، في هذا الدرس سنبدأ ب interface المسمى IEnumerable وما هي الفائدة المرجوة وراء ذلك .
بداية أرجو منك أن تركز جيداً في هذا الدرس ، فهذا واحد من الدروس التي ستلاحقنا كثيراً أثناء تطبيق مبادئ Linq .
لنفترض ان لدينا فئة مصفوفة أسماء تحتوي على عدة بيانات بالشكل التالي :
C#:
كود :
string[] users = { "Ahmed", "Mohammed" };vb.net:
كود :
[FONT=Tahoma]Dim users As String() = {"Ahmed", "Mohammed"} [/FONT]والآن لقراءة محتويات المصفوفة كنا نستخدم الكود التالي باستخدام for - each كما تعلمنا سابقاً :
C#:
كود :
foreach (string us in users)
{
Console.WriteLine(us);
}vb.net:
كود :
[FONT=Tahoma]For Each us As String In users
Console.WriteLine(us)
Next
[/FONT]هذا لو كنا نعتمد على array ، تجد اننا نستخدم دالة للدوران على كافة العناصر ، سنقوم بتوسيع المثال نوعاً ليكون ذلك بالاعتماد على فئة ، سنفترض فئة الموظفين بالشكل التالي :
C#:
كود :
public class employee
{
int emp_number;
string emp_name;
}vb.net:
كود :
[FONT=Tahoma]Public Class employee
Private emp_number As Integer
Private emp_name As String
End Class [/FONT]وليكن لدينا كلاس آخر يحتوي على بيانات المستخدمين ، حيث ان المستخدم هو عبارة عن مجموعة من الموظفين بالشكل التالي مثلاً :
c#:
كود :
[FONT=Tahoma]public class users
{
employee[] emp = new employee[3];[/FONT]
[FONT=Tahoma]users()
{[/FONT]
[FONT=Tahoma]emp[0] = new employee(10, "Ahmed");
emp[1] = new employee(20, "Khaled");
emp[2] = new employee(30, "Ali");[/FONT]
[FONT=Tahoma]}
}[/FONT]vb.net:
كود :
[FONT=Tahoma]Public Class users
Private emp As employee() = New employee(2) {}
Private Sub New()
emp(0) = New employee(10, "Ahmed")
emp(1) = New employee(20, "Khaled")
emp(2) = New employee(30, "Ali")
End Sub
End Class
[/FONT]يمكننا استعراض السيارات ايضاً باستخدام for each ايضاً باستخدام جملة كالتالي :
C#:
كود :
[FONT=Tahoma]foreach (employee e in emp)
{[/FONT]
[FONT=Tahoma]}[/FONT]vb.net
كود :
[FONT=Tahoma]For Each e As employee In emp
Next
[/FONT]مع كل loop سيتم طباعة عنصر معين ، هذا هو المبدأ الذي سنسعى إليه مع ال IEnumerable .