بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
وصلى الله على محمد وآله الطاهرين
السلام عليكم ورحمة الله وبركاته
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
وصلى الله على محمد وآله الطاهرين
السلام عليكم ورحمة الله وبركاته
كثيرا ما نستخدم الدالة 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(str1, out num1); // Will return True and execute
bool b2 = int.TryParse(str2, out num2); // Will return False and print 0
bool b3 = int.TryParse(str3, out num3); // Will return False and print 0
لاحظ اخي العزيز الفرق في استخدام الدالتين في الدالة الاولى كما اسلفنا سيحدث استثناء إن حدث خطأ في عملية التحويل ولذا لن ينفذ الكود أما في الحالة الثانية واقصد هنا باستخدام الدالة TryParse فالكود سينفذ بدون استثناء في حال فشل التحويل وبدلا من ذلك سيرجع الدالة قيمة بوليانية في حالة الفشل وسيمرر القيمة صفر الى العدد الصحيح عن طريق الكلمة الاساسية out.
أتمنى ان الفكرة وضحت لكم في كيفية استخدام الدالتين
تحياتي
ولا تنسوني و والدي من خالص دعواتكم.