خوش اومدید.
توی این ویدیو می‌خوام در مورد کمک‌کننده‌های تبدیل (conversion helpers) صحبت کنم.
یکی از اونها رو دیدیم.
اون متد parse هست.
می‌خوام سریع یه بار دیگه متد parse رو بهتون نشون بدم.
برای مثال اینجا یه رشته (string) دارم که فقط یه عدد نگه می‌داره و می‌خوام اون رو parse کنم.
و طبیعیه که باید براش یه اسم بذارم.
مثلاً number string.
و حالا می‌خوام این number string رو با استفاده از متد parse به یه int تبدیل کنم.
خب.
اینطوری می‌تونم از parsing استفاده کنم.
و این parse در واقع یه conversion helper هست.
اینجا دارم از یه رشته استفاده می‌کنم که فقط باید عدد باشه.
نمی‌تونه کاراکتر غیرعددی داخلش باشه.
پس نمی‌تونم اینجا یه B بذارم یا چیز دیگه.
این باعث خطا می‌شه.
و برنامه رو از کار میندازه.
اما اگه واقعاً فقط یه عدد صحیح داخل باشه، می‌تونم اونو بهint
تبدیل کنم و این جواب می‌ده
و خروجی 1 تا 3 می‌شه.
convert حالا بعضی وقتا باید از متد استفاده کنید.
مثلاً فرض کنید یه string به اسم my bool string دارم.
که داخلش چیزی مثل true نگه می‌داره.
پس فقط می‌تونه true یا false باشه.
چون می‌خوام اینو تبدیل کنم به یه متغیر bool.
یعنی boolean.
پس می‌نویسم bool.
و my bool حالا هرچی my bool string نگه داره رو می‌گیره.
اما برای اینکه تبدیل بشه به نوع داده درست، باید از کلاس convert استفاده کنم.
این کلاس convert یه عالمه متد داره.
کلاس در واقع مجموعه‌ای از اطلاعاته.
و همچنین می‌تونه عملکردها یا
متدهایی هم داشته باشه.
مثل مهارت‌هایی که می‌تونه اجرا کنه.
رو دیدیم و از متدهایش استفاده کردیم console قبلا از کلاس ReadKey و WriteLine
convert اینجا هم داریم از two کلاس استفاده می‌کنیم که متدی به اسم داره.
باهاش می‌شه به انواع مختلف تبدیل کرد.
مثلاً به int32.
یا به SByte، double، decimal، datetime.
خیلی نوع‌های دیگه هم هست.
اما توی این مثال خاص می‌خوام my bool string رو به bool تبدیل کنم.
حالا این رشته رو می‌گیره و تلاش می‌کنه به یه نوع داده
bool واقعی تبدیلش کنه.
اگه کدمو اجرا کنم و خطایی نگیرم، یعنی همه‌چی درسته.
حالا بیایم چیزی روی کنسول چاپ کنیم، مثلاً بنویسیم "my bool is".
و بعد با + مقدار my bool رو اضافه کنیم.
بیان که ببینیم خروجی چی میشه
درسته my bool می‌بینید که خروجی می‌شه: .
bool یعنی مقدار true که اینجا داشتیم رو به
تبدیل کرد و بعد نمایش داد.
اینجا اتفاقی که می‌افته اینه که bool به‌صورت ضمنی (implicitly) به string هم تبدیل می‌شه.
رشته چون این خط کدی که داریم داخلش استفاده می‌کنیم.و این فقط می گه که درسته
بله.
می دونی چیه؟
و سی شارپ خودش می‌گه خب باشه، اینو به رشته تبدیل می‌کنم.
چون توی سی شارپ می‌شه هر شئ رو به رشته تبدیل کرد.
حتی اگه خیلی خوانا نباشه، ولی جواب می‌ده. برای ها bool که از نوع structs هم جواب می‌ده، .
boolean پس هست struct در اصل یه
در آینده مفصل در مورد structها صحبت می‌کنیم، فعلاً لازم نیست نگران باشید.
فقط باید بدونید که bool می‌تونه دو مقدار داشته باشه.
یا true یا false.
حالا اگه یه چیز اشتباه وارد کنیم، مثلاً "123"، و دوباره اجرا کنیم...
می بینیم که هیچی نمی گیرم
می‌بینیم که خطا می‌ده.
در این خط در واقع خطا دریافت می کنم
می‌گه نمی‌تونه تبدیل کنه.
خطای FormatException می‌ده.
چون تلاش می‌کنه رشته "123" رو به تبدیل کنه، bool
ولی نمی‌شه.
اینجا باید خیلی دقیق باشید.
یعنی مطمئن بشید مقداری که می‌خواید تبدیل کنید واقعاً قابل تبدیل به اون نوع داده باشه.
توی این مورد خاص، مقدار باید یا true باشه یا false.
در این تبدیل مقدار متغیر درست یا غلط می تونه باشه
هر دو جواب می‌ده، ولی باید یکی از این دوتا باشه.
false و سپس می بینید که بولین من مقدارش
می‌بینید که خودش با حرف بزرگ می‌نویسه.
false پس می‌تونیم رو هم با حرف بزرگ بنویسیم،
جواب می‌ده.
ToBoolean همین متد خودش این کارو انجام می‌ده.
پس واقعاً فقط مقدار رو به نوع داده درست تبدیل می‌کنه.
چه با F بزرگ باشه یا f کوچک، فرقی نمی‌کنه.
باشه.
ولی الان باید مقدار یا false باشه یا true.
همونطور که دیدیم، کلاس convert متدهای دیگه هم داره.
مثلاً convert dot...
می‌بینید می‌تونه یه چیز رو به string تبدیل کنه، یعنی bool رو دوباره به string برگردونه.
مثلاً می‌تونه چیزی رو به عدد، char و غیره تبدیل کنه.
اما چیزی که داخل پرانتز می‌دید باید واقعاً قابل تبدیل به
اون نوع باشه.
خب این می تونه اشتباه باشه
به همین خاطر پیشنهاد می‌کنم خودتون امتحانش کنید و کمی تست کنید .
تا دستتون بیاد
ولی به طور کلی، الان تفاوت بین یعنی استفاده از helper convert. و helper parse
رو دیدیم