عرض مشاركة واحدة
  #1  
قديم 02-18-2010, 04:27 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس التاسع : ال 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 كدلالة لمتغير ما بدلاً من الرموز المعقدة والتي سيصعب عليك فهمها دون وجود قاموس لترجمة الرموز .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس