تبدیل داده ها با متد TryParse
همانطور که در پست متد خواندن اطلاعات در کنسول اپلیکیشن مطالعه کردید، متد ReadLine هر نوع دادهای که کاربر وارد میکند را برای ما برنامهنویسها به عنوان رشته بر میگرداند. اما همیشه نوع داده رشته مورد نیاز ما نبوده و باید راهی برای تبدیل رشته به یک نوع داده دیگر پیدا کنیم.
برای اینکار ۴ روش کلی وجود داشته که فعلا ۳ روش مرسوم و ابتداییشو خدمتتون عرض میکنم و روش چهارم انشالله در پستهای پایانی مبحث boxing و unboxing بصورت مفصل برایتان توضیح خوام داد.
روش اول : تبدیل داده ها با متد Parse
روش دوم : تبدیل داده ها با متد TryParse
روش سوم: تبدیل داده ها با کلاس Convert
۲. دومین روش، استفاده از متد TryParse
متد TryParse همان کار متد Parse را انجام میدهد، ولی قطعا تفاوتی با آن متد دارد، خب همانطور که در توضیحات بالا مطالعه نمودید، خدمتتان عرض کردم که اگر متد Parse بتواند رشته را به int یا float یا مابقی دادهها تبدیل کند آنوقت داده را درون ظرف قبل کاراکتر مساوی مثل شناسههای age یا avg میریزد، اما اگر نتواند قطعا به باگ میخورد و سیستم به کاربر ارور خواهد داد.
مثلا فکر کنید کاربر به جای وارد کردن سن، اسم خود را وارد میکند، خب متد Parse قطعا نمیتواند رشته ali را به یک عدد از نوع int تبدیل کند.
پس متد TryParse برای حل این مشکل به کمک ما میاد، این متد دقیقا همان کار متد Parse را انجام می دهد، اما به برنامهنویس با یک مقدار از بولین (bool) اطلاع میدهد که آیا عملیات تبدیل را توانسته انجام دهد یا خیر!
درنتیجه اگر عملیات تبدیل ناموفق باشد، متد TryParse به برنامهنویس مقدار false را بر گردانده و برنامهنویس میتواند بررسی کند که اگر مقدار false بود از بروز باگ و ارور سیستم جلوگیری کند.
int number;
bool flag = int.TryParse(Console.ReadLine(), out number);
در این مثال اگه کاربر عدد وارد کند، متد ReadLine آن رشته را دریافت کرده و سپس به عنوان ورودی به متد TryParse ارسال میکند، پس متد TryParse آن رشته را به نوع دادهای int تبدیل کرده و بعد خروجی فرآیند تبدیل را در ظرف number ذخیره میکند؛ همچنین برای برنامهنویس هم در ظرف flag مقدار true را ارسال و ذخیره میکند.
این درصورتی است که کاربر به عنوان ورودی تنها عدد وارد کند!
اما اگر کاربر کاراکتری جز عدد وارد کند، آنوقت متد TryParse مثل متد Parse به کاربر ارور نمیدهد؛ دراصل ماهیت متد TryParse این است که اگر نوانست عملیات تبدیل را انجام دهد، از بروز ارور جلوگیری کرده و به ما (برنامهنویس) در ظرف flag مقدار false رو ارسال کند.
پس در این حالت که flag برابر false است، برنامهنویس میتواند با استفاده از دستورات شرطی پیغامی را به کاربر نمایش دهد:
if ( flag == true )
{
Console.WriteLine("عدد شما ذخیره شد");
}
else
{
Console.WriteLine("شما کاراکتری جز عدد وارد کردید!!!");
}
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.