المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس التاسع : ال Enumeration دورة .net 2008


khaledbelal
02-18-2010, 04:27 PM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

ما هو ال 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

End Enum

يمكننا ايضاً تحديد المساحة التي يتم تخزين فيها عنصر ال enum لاختصار المساحة ايضاً ، يمكن تحديد النوع byte كمثال على ذلك بالشكل التالي :

c#:

enum cars:byte
{
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

End Sub

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

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