منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الدرس التاسع : ال Enumeration - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138)
+---- الموضوع : الدرس التاسع : ال Enumeration (/showthread.php?tid=5338)



الدرس التاسع : ال Enumeration - oneyemenweb2 - 06-10-12

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

ما هو ال Enum ؟

اختصار ل enumerations - تحتوي على مجموعة من العناصر تمثل حالات وقيم مختلفة داخل البرنامج .

ابسط مثال على ال Enum هو استخدامها في حالة لموديلات السيارات ، لنفترض لدينا ثلاث انواع من السيارات ، Toyota ، Nissan واخيراً FIAT ، لو كنا نقوم بتخزينهم على شكل قيم 0 ، 1 و 2 في قاعدة البيانات مثلاً ، فإننا لا نريد ان نجبر المبرمج على ادخال رقم كل سيارة ، بل يمكنه ادخال اسمها والذي سيتم ترجمته لاحقاً إلى الرقم المناظر له .

C#:
كود :
enum cars
{
toyota=0,
nissan=1,
fiat=2
}

VB.net
كود :
Enum cars
    
    
    toyota = 0
    
    nissan = 1
    
    fiat = 2

VB.net:
كود :
Enum cars As Byte
    
    
    toyota = 0
    
    nissan = 1
    
    fiat = 2
    
End Enum

الآن يمكننا استخدام الاسماء الجديدة في البرمجة بدلاً من الارقام أو الرموز بما يكفل لنا سهولة الاستخدام ، لنفترض مثلاً اننا نريد برمجة دالة لعرض سعر اي سيارة بناء على اسم السيارة .

C#:
كود :
static void printPrice(cars mycar)
{
if (mycar == cars.fiat)
Console.WriteLine("20,000");
else if (mycar==cars.nissan)
Console.WriteLine("30,000");
else
Console.WriteLine("40,000");
}

VB.net:

كود :
Private Shared Sub printPrice(ByVal mycar As cars)
    
    If mycar = cars.fiat Then
        Console.WriteLine("20,000")
ElseIf mycar = cars.nissan Then
        Console.WriteLine("30,000")
    Else
        Console.WriteLine("40,000")
    
    End If


هكذا نجد اننا نستخدم اسماء واضحة رغم ان القيم الفعلية المخزنة هي من نوع byte .

اوضح ما يمكنك تخيله كفائدة لل enum هي دوال API الخاصة بالويندوز ، في الواقع انت ترسل بيانات مثل 00A127X للدوال ، لكن في الواقع تجد نفسك ترسل بعض الأسماء الواضحة مثل Local كدلالة لمتغير ما بدلاً من الرموز المعقدة والتي سيصعب عليك فهمها دون وجود قاموس لترجمة الرموز .