03-01-16, 02:05 AM
03-01-16, 10:28 AM
Enum
هناك فائدة رئيسية منه وهناك فائدة اخرى تقنية اغلبنا لا يعرفها ،
الفائدة الرئيسية من الEnum ، هي التعامل مع الارقام كأسماء دلالية .
مثال :- شهر 12 يسمى بالانجلزي December
لو افترضنا انك صممت دالة تريد بارميتار بعبر عن الشهر ، لشخص لايعرف ماهو الEnum سيصممها بهذه الطريقة :-
PHP كود :
Private Sub Month(mnth As String)
If mnth = "january" Then
End If
If mnth = "october" Then
End If
If mnth = "novmber" Then
End If
End Sub
هذه الطريقة ابدا غير فعالة في البرمجة ، فعند الاستدعاء :-
PHP كود :
Month("janury")
Month("OCTBR")
بالطبع لن يظهر لك المترجم خطأ ، ولكن الدالة month لن تقوم بعمل المطلوب منها في حالة الكود اعلاه لانك ارسلت string خاطئ .
من هنا ظهر مبدأ الEnum ، كل ماعلينا هو وضع اسماء الشهور في Enum
PHP كود :
Enum Months
December
October
Novmber
End Enum
الان نغير اكواد الدالة قليلا لتصبح كالتالي :-
PHP كود :
Private Sub Month(mnth As Months)
If mnth = Months.December Then
End If
If mnth = Months.Novmber Then
End If
If mnth = Months.October Then
End If
End Sub
والان عند الاستدعاء :-
PHP كود :
Month(Months.December);
Month(Months.Novmber);
كما تلاحظ باستعمال الenum ستكون متاكد 100% من البارميتار انه صحيح
وذلك كما ترى افضل من جعل البارميتار ك string وبالتالي قد تنسى كتابة حرف او تجعل الحروف كابتال وذلك سيأثر بالطبع على الدالة ولن تقوم بعملها
ولكن Enum لايمكنك ان تخطأ في الspilling او تجعل الحروف كابتل لان المترجم سيظهر خطأ .
جرب بتفسك وستلاحظ الفرق