تبدیل نوع (Type Casting)
گاهی باید مقدارِ یک نوع داده را به نوعی دیگر تبدیل کنی. به این کار می گوییم «تبدیل نوع C#». مثل تبدیل نمره کلاسی به درصد برای مقایسه ساده تر.
تبدیل نوع C# چیست؟
دو مدل داریم: «ضمنی» و «صریح». ضمنی خودکار است و از کوچک به بزرگ می رود. صریح دستی است و برعکس عمل می کند.
ضمنی (Implicit): char → int → long → float → double.
صریح (Explicit): double → float → long → int → char.
تبدیل ضمنی: خودکار و بی دردسر
وقتی ظرف بزرگ تر است، مقدار جا می شود و خودکار تبدیل می شود.
int myInt = 9;
double myDouble = myInt;
Console.WriteLine(myInt);
Console.WriteLine(myDouble);
تبدیل صریح: دستی و کنترل شده
وقتی ظرف کوچک تر است، باید خودت نوع را جلوی مقدار بنویسی.
double myDouble = 9.78;
int myInt = (int) myDouble;
Console.WriteLine(myDouble);
Console.WriteLine(myInt);
تبدیل با متدهای Convert
گاهی روش امن تر، استفاده از متدهای آماده Convert است.
int myInt = 10;
double myDouble = 5.25;
bool myBool = true;
Console.WriteLine(Convert.ToString(myInt));
Console.WriteLine(Convert.ToDouble(myInt));
Console.WriteLine(Convert.ToInt32(myDouble));
Console.WriteLine(Convert.ToString(myBool));
نکته: در ورودی کاربر معمولاً به تبدیل نیاز داری. متن به عدد تبدیل می شود تا جمع بزنی.
گام های تمرین
- یک int بساز و آن را به double تبدیل کن.
- یک double بساز و با (int) به int تبدیل کن.
- با Convert.ToInt32 یک string عددی را به int تبدیل کن.
مسیر ادامه
برای انتخاب نوع مناسب، صفحه انواع داده را ببین. پایه کار با مقدارها در متغیرها است. همچنین این صفحه تبدیل نوع C# را نشانه گذاری کن.
جمع بندی سریع
- ضمنی از کوچک به بزرگ است.
- صریح از بزرگ به کوچک است.
- Convert خطاها را قابل پیش بینی تر می کند.
- ورودی کاربر معمولاً تبدیل لازم دارد.