تفاوت ()int.Parse و ()int.tryParse

پس مدت ها که دوران سربازی به خاتمه رسید، تصمیم دوباره گرفتم تا نوشتن در وبلاگم را شروع کنم. می خواستم اولین نوشته ام بعد از دوران سربازی، در مورد این دورانٍ به معنای کلمه مزخرف باشد. اما برای گفتن از این دوران باید وقت مناسبی گذاشت، پس بهتر هست به سراغ نگارش همین مقاله بروم. از جمله سوالاتی که برای اکثر برنامه نویسان پیش آمده، وجود متدها و نوع متغیرهایی ست که تقریبا هم نام هستند و تقریبا هم ورودی و خروجی های یکسانی دارند، مانند: تفاوت String و string یا تفاوت ()int.Parse و ()int.TryParse .

تفاوت ()int.Parse و ()int.tryParse

هر دو متد ()int.Parse و ()int.TryParse در نهایت یک رشته عددی را تبدیل به نوع عددی متناظر با آن رشته عددی می کنند. وقتی ()int.Parse نتواند رشته را به عدد تبدیل کند، یک استثناء رخ می دهد. اما اگر ()int.TryParse نتواند رشته را به عدد تبدیل کند، یک مقدار bool بر میگرداند.
به عنوان مثال، در کد زیر، رشته ۲۰۰ بدون خطایی تبدیل به مقدار عددی ۲۰۰ می شود.

در هنگام اجرای ()int.Parse ممکن است سه استثناء رخ دهد :
– پارامتر ورودی null باشد، ArgumentNullException (^) رخ می دهد.
– پارامتر ورودی قابلیت تبدیل به عدد را نداشته باشد، FormatException (^) رخ می دهد.
– پارامتر ورودی خارج از مجدوده integer باشد، OverflowException (^) رخ می دهد.

متد ()int.TryParse در صورتی که رشته را به عدد تبدیل کند،true را برگشت می دهد و در صورت تبدیل نشدن رشته به عدد، مقدار false را بر میگرداند. برای درک بهتر این موضوع، به مثال زیر توجه کنید.

با توجه به این که هر دو متد اندکی با هم تفاوت دارند، موقعیت استفاده از هر دو متد کاملا وابسته به محل اجرایشان است. اما پیشنهاد بنده این است که استفاده از متد ()int.TryParse قابل قبول تر است و کد بهینه و امن تری را در اختیار قرار می دهد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *