خوش برگشتید.
TryParse در این ویدیو قراره به نگاهی بندازیم.
TryParseو متدی است که به ما اجازه می‌دهد با مشکل وارد شدن چیزی که
عدد نیست در حالی که ما از کاربر عدد می‌خواهیم کنار بیاییم.
پس بیایید یک دستور اینجا بسازیم.
به من یک عدد بده، اوکی؟
و حالا اون عدد رو از کاربر می‌خواهیم.
پس `Console.ReadLine()`.
و بعد می‌خواهیم هر چیزی که کاربر وارد کرد داخل یک رشته ذخیره بشه و بعد اون رو به عدد تبدیل کنیم.
به یک عدد صحیح.
پس اینجا `inputString` رو داریم، اوکی؟
حالا می‌خوام اون `inputString` رو به عدد تبدیل کنم.
و دیدیم چطور این کار انجام می‌شه، درسته؟
ما متغیری ساختیم: `int numOne = int.Parse(...)`.
و بعد `inputString` رو داخلش گذاشتیم.
و بعد می‌تونیم چیزی که کاربر وارد کرده رو چاپ کنیم.
مثلاً می‌تونیم یک چیزی بهش اضافه کنیم.
مثلاً عدد رو یک واحد افزایش بدیم، اوکی؟
مثل این، برای ساده نگه داشتن.
پس: عدد واردشده + ۱.
numOneو بعد مقدار رو استفاده می‌کنیم.
numOne هر چی در اون لحظه باشه، اوکی.
پس اگر الآن این کد رو اجرا کنیم، می‌بینیم اگر عدد ۵ بدیم برنامه اجرا می‌شه و بسته می‌شه چون
اینجا `Console.ReadKey()` نداریم.
بیایید دوباره اجرا کنیم.
عدد رو وارد می‌کنیم و می‌بینیم پیام میاد: عدد واردشده + ۱ = ۶ اوکی، پس درست کار کرد.
اما اگر عدد وارد نکنیم چی؟
دیدیم اونجا چه اتفاقی می‌افته.
اگر چیزی غیر عددی وارد کنیم یک `FormatException` می‌گیریم.
یعنی خطا چون فرمت درست نیست.
چطور این مشکل رو دور بزنیم؟
خوب، یک چیز دیگه هست به اسم TryParse.
int.TryParse پس می‌تونیم از استفاده کنیم.
این متد نیاز داره یک رشته ورودی بگیره،
و همچنین باید بدونه نتیجه رو کجا ذخیره کنه.
یعنی محل ذخیرهٔ نتیجهٔ تبدیل.
پس اگر این‌طوری انجامش بدیم بذارید درستش کنم کاری که انجام می‌ده اینه:
ابتدا ورودی کاربر رو می‌گیره.
سعی می‌کنه اون رو پارس کنه، و اگر موفق بود نتیجه رو در `numOne` ذخیره می‌کنه.
پس بذارید اجرا کنم و یک ورودی بدم.
"Hi."
و بعد پیام میاد: عدد واردشده + ۱ = ۱
پس چرا برناممون کرش نکرد؟
به خاطر `TryParse` این اتفاق نیفتاد.
چرا شد یک؟
int چون متغیرهای به‌صورت پیش‌فرض برابر صفر هستند.
int پس این اینجا صفره حتی اگر ما براش مقداری تعیین نکرده باشیم.
یعنی به‌صورت پیش‌فرض این‌طوریه ما چیزی بهش ندادیم.
ولی با این وجود این اتفاق افتاد.
پس اگر دوباره اجرا کنیم و این بار عدد وارد کنیم، می‌بینیم که درست کار می‌کنه.
و اگر عدد وارد نکنیم باز هم در خروجی ۱ رو می‌بینیم.
حالا چطور می‌تونیم از این برای تشخیص اینکه کاربر عدد درست وارد کرده یا نه استفاده کنیم؟
مثلاً می‌تونیم از `if` استفاده کنیم.
اوکی.
رو داخل یک TryParse می‌تونیم کل این عبارت بذاریم. if
TryParse چون اگر ماوس رو روی
ببرید می‌بینید چه چیزی برمی‌گردونه.
این یک مقدار بولین برمی‌گرداند.
یعنی می‌گه یک رشته و یک پارامتر out به من بده.
ولی بعد یک مقدار بولین برمی‌گردونم.
چیه؟ bool پس
یک bool متغیریه که می‌تونه true یا false باشه.
پس برای اینکه درستش انجام بدیم، بیایید اینجا یک bool بسازیم و اسمش رو بذاریم isNumber، اوکی؟
این بولین حالا بسته به ورودیِ کاربر مقدار true یا false خواهد داشت.
حالا بذارید یک نقطهٔ توقف (breakpoint) اینجا بذارم تا ببینم.
پس یک عدد وارد می‌کنیم.
بعد می‌رسیم به نقطه‌ای که داره تلاش می‌کنه تبدیلش کنه.
می‌بینیم `isNumber` برابر false هست.
چون bool به‌صورت پیش‌فرض برابر false تنظیم می‌شه.
هیچ‌وقت به‌صورت پیش‌فرض true نیست.
فقط وقتی مقدارش رو بازنویسی کنید، مقدار true رو می‌گیره.
true یعنی مقدار .
بزنم Step Over بعد می‌تونم
حالا وقتی روش هاور می‌کنم می‌بینید `isNumber` حالا روی true تنظیم شده.
چون من در واقع عدد وارد کرده بودم.
حالا بذارید دوباره اجراش کنم.
این‌بار چند حرف هم به عددم اضافه می‌کنم.
آنگاه ناگهان دیگه عدد نیست.
به‌جاش یک رشته شده.
پس الان می‌گه false چون این مقدار پیش‌فرضه.
می‌رم به خط بعد، رویش (کلیک یا موس رو روش می بریم) می‌کنم و هست false هنوز .isNumber
چون در این حالت در واقع عدد وارد نکردم و برگردوند TryParse false
نتونست چیزی که وارد کردم رو به عدد تبدیل کنه
خب، حالا چطور می‌تونیم از این استفاده کنیم؟
if statement می‌تونیم این رو داخل یک استفاده کنیم.
می‌گیم اگر این یع عدد هست پس ...
Console.WriteLine("well done")
«آفرین! شما عدد وارد کردید.» وگرنه اگر عدد نبود، می‌گیم: «هاها، تو ترول هستی .»
باید عدد وارد می‌کردی
خب، حالا برنامه‌مون رو دوباره اجرا کنیم.
چیزی وارد می‌کنیم و می‌بینیم که می‌گه: «هاها، تو ترول هستی — باید عدد وارد می‌کردی.» و این‌طوری می‌تونید از
استفاده کنید. TryParse
خب، از این برای تبدیل یک رشته به یک عدد صحیح استفاده می‌کنید.
اگر موفق باشه، عدد رو برمی‌گردونه؛ اگر موفق نباشه، عددی برنمی‌گرده اما متغیر بولین شما همچنان false باقی می‌مونه.
خوب، این هم از این ویدیو بود.
TryParse حالا می‌دونید چطور از استفاده کنید.
و می‌تونید ازش استفاده کنید تا مطمئن بشید نرم‌افزاری که قبلاً ساختیم مثل این ماشین‌حساب .
وقتی کاربر چیزی غیرعددی وارد کرد دیگه کرش نکنه
خیلی خب.
پس همین بود برای این ویدیو.
می‌بینمتون در ویدیوی بعدی.