منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   دورة .NET 2008 من منتدى فيجوال بيسك للعرب (https://montada.khaledbelal.com/forumdisplay.php?f=57)
-   -   الدرس التاسع : ال Enumeration دورة .net 2008 (https://montada.khaledbelal.com/showthread.php?t=522)

khaledbelal 02-18-2010 04:27 PM

الدرس التاسع : ال Enumeration دورة .net 2008
 
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

ما هو ال Enum ؟

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

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

C#:
كود PHP:

enum cars
{
toyota=0,
nissan=1,
fiat=2


VB.net
كود PHP:

Enum cars 
    
    
    toyota 

    
    nissan 

    
    fiat 

    
End Enum 

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

c#:
كود PHP:

enum cars:byte
{
toyota=0,
nissan=1,
fiat=2


VB.net:
كود PHP:

Enum cars As Byte 
    
    
    toyota 

    
    nissan 

    
    fiat 

    
End Enum 

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

C#:
كود PHP:

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:
كود PHP:

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 كدلالة لمتغير ما بدلاً من الرموز المعقدة والتي سيصعب عليك فهمها دون وجود قاموس لترجمة الرموز .



الساعة الآن 08:23 PM.

Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية

Ads Management Version 3.0.1 by Saeed Al-Atwi

a.d - i.s.s.w