C# – تبدیل نوع (Type Casting)

تبدیل نوع زمانی اتفاق می‌افتد که یک مقدار از یک نوع داده به نوع دیگری اختصاص داده می‌شود.

در C#، دو شکل نوع‌تبدیلی وجود دارد:

  1. نوع‌تبدیلی ضمنی (Implicit Casting): تبدیل خودکار یک نوع کوچک‌تر به نوع بزرگ‌تر

    • ترتیب: char -> int -> long -> float -> double
  2. نوع‌تبدیلی صریح (Explicit Casting): تبدیل دستی یک نوع بزرگ‌تر به نوع کوچک‌تر

    • ترتیب: double -> float -> long -> int -> char

تبدیل نوع ضمنی (Implicit Casting)

تبدیل نوع ضمنی به صورت خودکار انجام می‌شود وقتی که یک نوع با اندازه کوچکتر به نوعی با اندازه بزرگ‌تر انتقال می‌یابد:

مثال

int myInt = 9;
double myDouble = myInt;       // نوع‌تبدیلی خودکار: int به double

Console.WriteLine(myInt);      // خروجی: 9
Console.WriteLine(myDouble);   // خروجی: 9

تبدیل نوع صریح (Explicit Casting)

تبدیل نوع صریح باید به صورت دستی انجام شود با قرار دادن نوع مورد نظر در داخل پرانتز در جلوی مقدار:

مثال

double myDouble = 9.78;
int myInt = (int) myDouble;    // نوع‌تبدیلی دستی: double به int

Console.WriteLine(myDouble);   // خروجی: 9.78
Console.WriteLine(myInt);      // خروجی: 9

روش‌های تبدیل نوع (Type Conversion Methods)

زبان C# روش‌های داخلی مختلفی برای تبدیل نوع‌های داده فراهم می‌آورد. همچنین می‌توان انواع داده‌ها را به صورت صریح با استفاده از متدهای داخلی تبدیل کرد، در زیر لیستی از این متدها و توضیحات آن‌ها آمده است:

شماره متد و توضیحات
1 ToBoolean: تبدیل نوع به مقدار بولین، در صورت امکان.
2 ToByte: تبدیل نوع به بایت.
3 ToChar: تبدیل نوع به یک کاراکتر یونیکد، در صورت امکان.
4 ToDateTime: تبدیل نوع (عدد صحیح یا رشته) به ساختارهای تاریخ و زمان.
5 ToDecimal: تبدیل نوع اعشاری یا عدد صحیح به نوع دسی‌مال.
6 ToDouble: تبدیل نوع به نوع دابل.
7 ToInt16: تبدیل نوع به عدد صحیح 16 بیتی.
8 ToInt32: تبدیل نوع به عدد صحیح 32 بیتی.
9 ToInt64: تبدیل نوع به عدد صحیح 64 بیتی.
10 ToSByte: تبدیل نوع به بایت علامت‌دار.
11 ToSingle: تبدیل نوع به عدد اعشاری کوچک (float).
12 ToString: تبدیل نوع به رشته.
13 ToType: تبدیل نوع به نوع مشخص شده.
14 ToUInt16: تبدیل نوع به عدد صحیح بدون علامت 16 بیتی.
15 ToUInt32: تبدیل نوع به عدد صحیح بدون علامت 32 بیتی.
16 ToUInt64: تبدیل نوع به عدد صحیح بزرگ بدون علامت 64 بیتی.

مثال‌های کاربردی

تبدیل به Boolean

int number = 1;
bool isTrue = Convert.ToBoolean(number);
Console.WriteLine(isTrue); // خروجی: True

تبدیل به Byte

int number = 255;
byte byteValue = Convert.ToByte(number);
Console.WriteLine(byteValue); // خروجی: 255

تبدیل به Char

int number = 65;
char character = Convert.ToChar(number);
Console.WriteLine(character); // خروجی: A

تبدیل به DateTime

string dateStr = "2024-08-04";
DateTime date = Convert.ToDateTime(dateStr);
Console.WriteLine(date); // خروجی: 4/08/2024 00:00:00

تبدیل به Decimal

double number = 19.99;
decimal decimalValue = Convert.ToDecimal(number);
Console.WriteLine(decimalValue); // خروجی: 19.99

تبدیل به Double

int number = 42;
double doubleValue = Convert.ToDouble(number);
Console.WriteLine(doubleValue); // خروجی: 42

تبدیل به Int16

long number = 32767;
short shortValue = Convert.ToInt16(number);
Console.WriteLine(shortValue); // خروجی: 32767

تبدیل به Int32

long number = 2147483647;
int intValue = Convert.ToInt32(number);
Console.WriteLine(intValue); // خروجی: 2147483647

تبدیل به Int64

int number = 2147483647;
long longValue = Convert.ToInt64(number);
Console.WriteLine(longValue); // خروجی: 2147483647

تبدیل به SByte

int number = -128;
sbyte sbyteValue = Convert.ToSByte(number);
Console.WriteLine(sbyteValue); // خروجی: -128

تبدیل به Single

int number = 7;
float floatValue = Convert.ToSingle(number);
Console.WriteLine(floatValue); // خروجی: 7

تبدیل به String

int number = 100;
string stringValue = Convert.ToString(number);
Console.WriteLine(stringValue); // خروجی: "100"

تبدیل به Type

این متد بیشتر در مواقعی کاربرد دارد که نیاز به تبدیل به نوع خاصی دارید:

object obj = "Hello";
string str = Convert.ToType(obj, typeof(string)) as string;
Console.WriteLine(str); // خروجی: Hello

تبدیل به UInt16

int number = 65535;
ushort ushortValue = Convert.ToUInt16(number);
Console.WriteLine(ushortValue); // خروجی: 65535

تبدیل به UInt32

long number = 4294967295;
uint uintValue = Convert.ToUInt32(number);
Console.WriteLine(uintValue); // خروجی: 4294967295

تبدیل به UInt64

long number = 18446744073709551615;
ulong ulongValue = Convert.ToUInt64(number);
Console.WriteLine(ulongValue); // خروجی: 18446744073709551615

چرا تبدیل؟

بسیاری اوقات نیازی به تبدیل نوع نیست. اما گاهی اوقات مجبور به انجام آن هستید. به فصل بعدی که درباره کار با ورودی کاربر است نگاه کنید تا نمونه‌ای از این موضوع را ببینید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.