چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1500 مطلب آموزشی

نیازهای روز

تفاوت بین متد int.Parse و int.TryParse در زبان سی شارپ

در این مقاله بهمراه مثال به تفاوت بین متد int.Parse و int.TryParse می‌پردازیم.

مقدمه:

تفاوت بین متد int.Parse و int.TryParse در چیست؟ در این مقاله قصد داریم به همراه مثال به توضیح هر یک بپردازیم. به صورت خلاصه، متدهای int.Parse و int.TryParse جهت تبدیل اعداد در قالب رشته به نوع Interger کاربرد دارند. در صورتی که بخواهید متغیر کاراکتر از نوع رشته را با استفاده از متد int.Parse تبدیل نماید با خطا روبرو خواهید شد اما متد int.TryParse متغییر true در صورت موفقیت آمیز بودن عملیات، در غیر اینصورت مقدار false برمیگرداند.

متد int.Parse:

using System;

namespace Parse_And_TryParse
{
    class Program
    {
        static void Main(string[] args)
        {
            string number = "123";
            int result = int.Parse(number);
        }
    }
}

متغیر تعریف شده number با استفاده از متد int.Parse به مقدار عدد صحیح بدون هیچ استثنا و خطایی تبدیل خواهد شد.

در صورت موفقیت آمیز نبودن عملیات، یکی از استثناهای زیر رخ خواهد داد:

  1. مقدار پارامتر null باشد، استثنا ArgumentNullException برگشت داده می‌شود.
  2. مقدار پارامتر قابل تبدیل به مقدار عدد صحیح نباشد، استثنا FormatException برگشت داده می‌شود.
  3. مقدار پارامتر بعد از عمل تبدیل، بزرگتر از حد گنجایش نوع int باشد، استثنا OverflowException برگشت داده می‌شود.

مثال - استثناها موجود بعد از موفقیت نبودن عملیات int.parse

متد int.TryParse:

خروجی این متد متغیر boolean خواهد بود که البته برای تبدیل رشته به متغیر int دارای دو Overload با پارامتر ورودی متفاوت است. اگر تبدیل با موفقیت به پایان برسد مقدار true در غیر اینصورت مقدار false برگشت داده خواهد شد.

پارامتر اول رشته مربوطه‌ و پارامتر دوم متغیر است که نتیجه نهایی در آن ریخته خواهد شد.

using System;
using System.Globalization;

namespace Parse_And_TryParse
{
    class Program
    {
        static void Main(string[] args)
        {
            string number = "123";
            int out_of_result;
            bool isSuccess = int.TryParse(number, out out_of_result);
            if (isSuccess)
            {

            }
            else
            {
                
            }
        }
    }
}

در مثال بالا عملیات با موفقیت به پایان خواهد رسید، اما در صورتی که مقدار متغیر null، کاراکتر و یا خارج از محدوده متغیر int باشد مقدار 0 و false برگشت داده خواهد شد.

c sharp- int.parse exception

 

int.Parse یا int.TryParse کدام یک؟

در جواب اشاره خواهم کرد بنا به نوع پروژه متفاوت خواهد بود اما به نظر من استفاده از int.TryParse جهت هندل کردن خطا و استفاده از مقدار برگشتی boolean مناسب خواهد بود. در صورتی که نیاز باشد نوع خطا برگشتی مشخص شود می‌بایست از int.Parse استفاده شود. اینجا پایان نیست، بحث دیگری که شاید برای شما سوال باشد فرق این دو متد با متد Convert.ToInt32 در چیست؟ در ویرایش بعدی به این متد هم خواهیم پرداخت.

c sharp- int.parse exception 3

 

نکته: تمامی نوع‌های اولیه زبان سی شارپ بجز string دارای متد TryParse می‌باشند.

مآخذ:

امید نصری

0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.


You must log on to comment.