#csharp_for_beginners
در زبان برنامهنویسی سیشارپ، متغیرها انواع (Types) مختلفی دارند؛ مانند int، double، string و غیره. گاهی اوقات نیاز داریم مقدار یک نوع را به نوعی دیگر تبدیل کنیم. این فرآیند تبدیل نوع (Type Conversion) یا Casting نامیده میشود. سیشارپ دو نوع اصلی تبدیل دارد:
Implicit Conversion
Explicit Conversion / Casting
تبدیل ضمنی (Implicit Conversion)
در این نوع تبدیل، کامپایلر خودش بهطور خودکار نوع را تبدیل میکند، چون خطر از دست رفتن داده وجود ندارد. مثلاً وقتی مقدار int را به long تبدیل میکنیم:
int myInt = 100;
long myLong = myInt; // تبدیل ضمنی
تبدیل صریح (Explicit Conversion / Casting)
زمانی که احتمال از بین رفتن اطلاعات وجود دارد یا کامپایلر نمیتواند بهطور خودکار نوع را تبدیل کند، باید از cast صریح استفاده کنیم:
double myDouble = 123.45;
int myInt = (int)myDouble; // تبدیل صریح
استفاده از توابع Convert
سیشارپ کلاس System.Convert را برای تبدیل بین انواع مختلف فراهم کرده است:
string myString = "123";
int myInt = Convert.ToInt32(myString); // تبدیل رشته به عدد صحیح
استفاده از Parse و TryParse
برای تبدیل رشته به عدد (یا انواع مشابه)، میتوان از متد Parse یا TryParse استفاده کرد:
string myString = "456";
int myInt = int.Parse(myString); // اگر رشته ناصحیح باشد، استثناء رخ میدهد
bool success = int.TryParse(myString, out int result);
// اگر موفق باشد، result مقدار عددی میگیرد، در غیر این صورت صفر میشود
تبدیل نوعهای مرجع (Reference Types)
در حالتهای پیشرفتهتر، تبدیل نوع بین کلاسها (مثلاً از یک کلاس فرزند به کلاس والد یا برعکس) هم امکانپذیر است:
object obj = "Hello";
string str = (string)obj; // تبدیل صریح با cast
// استفاده از 'as'
string str2 = obj as string; // اگر نشود، مقدار null برمیگرداند
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______