تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] Parse and TryParse
#1
بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))

وصلى الله على محمد وآله الطاهرين

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


كثيرا ما نستخدم الدالة Parse في أكوادنا التي نكتبها عندما نريد تحويل سلسلة نصية مكونة من ارقام الى عدد صحيح او أي نوع اخر , لكننا نغفل عن ماهية هذه الدالة من حيث كيفية التحويل وما الذي سيحدث لو لم يكن السلسلة النصية مكونة من ارقام فقط؟ وما هي فائدة وفرق الدالة Parse عن اختها الدالة TryParse؟ وكيف تستخدم الدالة الثانية؟ كل هذا وأكثر سنتعرف عليها فيما يلي:

اولا: الفرق بين الدالة Parse والدالة TryParse:

Parse:
1- ابطأ من الدالة TryParse بسبب ان الدالة Parse تستدعي الدالة TryParse ويقوم برمي استثناء في حال فشل عملية التحويل.
2- لا يقبل null ويحدث استثناء في هذه الحالة.

TryParse:
1- يرجع قيمة بوليانية في حال فشل عملية التحويل.
2- يقوم بمعالجة القيمة null ولا يحدث استثناء بل يقوم بارجاع القيمة صفر.

ثانيا: طريقة عمل الدالتين:

1- الدالة Parse:

س/ قم بتحويل القيم النصية الاتية تباعا ("1w","123",null) الى عدد صحيح باستخدام الدالة Parse وقم بمعاينة الناتج؟

ج/

PHP كود :
string str1 "123";
            
string str2 "1w";
            
string str3 null;

            
int num1 int.Parse(str1); //Will Pass 
            
int num2 int.Parse(str2); //Will Throw Format Exception
            
int num3 int.Parse(str3); //Will Throw Null Exception 

2- الدالة TryParse:

نفس السؤال اعلاه

ج/


PHP كود :
string str1 "123";
            
string str2 "1w";
            
string str3 null;

            
int num1 ;
            
int num2 ;
            
int num3 ;

            
bool b1 int.TryParse(str1out num1); // Will return True and execute 
            
bool b2 int.TryParse(str2out num2); // Will return False and print 0
            
bool b3 int.TryParse(str3out num3); // Will return False and print 0 

لاحظ اخي العزيز الفرق في استخدام الدالتين في الدالة الاولى كما اسلفنا سيحدث استثناء إن حدث خطأ في عملية التحويل ولذا لن ينفذ الكود أما في الحالة الثانية واقصد هنا باستخدام الدالة TryParse فالكود سينفذ بدون استثناء في حال فشل التحويل وبدلا من ذلك سيرجع الدالة قيمة بوليانية في حالة الفشل وسيمرر القيمة صفر الى العدد الصحيح عن طريق الكلمة الاساسية out.

أتمنى ان الفكرة وضحت لكم في كيفية استخدام الدالتينSmile

تحياتي

ولا تنسوني و والدي من خالص دعواتكم.
الرد }}}
#2
جزاك الله خيراً و وفقك لما فيه خير لك ...


السلام عليكم
الرد }}}
تم الشكر بواسطة: Sajad
#3
مقارنة رائعة وشرح ولا اروع

تسلم يالغاليHeart
الرد }}}
تم الشكر بواسطة: Sajad
#4
السلام عليكم ورحمة الله وبركاته

إقتباس :جزاك الله خيراً و وفقك لما فيه خير لك ...


السلام عليكم

وجزاك بالمثل اخوية العزيز

إقتباس :مقارنة رائعة وشرح ولا اروع

تسلم يالغالي

الله يسلمك ويحفظك

شكرا على المرور الكريم

تحياتي
الرد }}}
تم الشكر بواسطة:
#5
بارك الله لنا فيك اخي Sajad
لا يلومني على انقطاعاتي المتكررة
فهي اما عمل او دراسة او تربية




سُبْحَانَكَ اللَّهُمَّ وَبِحَمْدِكَ، أَشُهَّدٌ أَنَّ لَا إلَهَ إلا أَنْتَ، أَسَتَغْفِرُكَ وَأَتُوبَ إِلَيْكَ
الرد }}}
تم الشكر بواسطة: Sajad
#6
إقتباس :بارك الله لنا فيك اخي Sajad

السلام عليكم

الله يبارك فيك شكرا على المرور

تحياتي
الرد }}}
تم الشكر بواسطة:
#7
صدق أو لا تصدق ...
أول معلومه أخدها من المنتديات العربيه Undecided
Abu Ehab : Microsoft Partner  & Systems Developer
 Youtube   Facebook    Twitter   
الرد }}}
تم الشكر بواسطة: Sajad
#8
السلام عليكم

إقتباس :صدق أو لا تصدق ...
أول معلومه أخدها من المنتديات العربيه

شكرا على المرور اخي العزيز ابو ايهاب

تحياتي لك
الرد }}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم