تبدیل نوع در سی شارپ
در این بخش از آموزش زبان سی شارپ به بررسی روش های تبدیل نوع در سی شارپ به یک دیگر خواهیم پرداخت. در مراجع مختلف ممکن است کار تبدیل انواع را با نام Type Casting نیز مشاهده کیند.
Type Casting دو شکل مختلف دارد:
- تبدیل نوع به صورت Implicit: این نوع تبدیل ها به روش ایمن (type-safe) انجام می شود. برای مثال تبدیل نوع int به long و یا تبدیل یک کلاس مشتق شده به کلاس پایه.
- تبدیل نوع به صورت Explicit: این نوع تبدیل ها با استفاده از توابع از پیش تعریف شده انجام می شود. تبدیل نوع به صورت Explicit نیاز به یک عملگر cast دارد.
مثال زیر نحوه تبدیل نوع به صورت explicit را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System; namespace TypeConversionApplication { class ExplicitConversion { static void Main(string[] args) { double d = 5673.74; int i; // cast double to int. i = (int)d; Console.WriteLine(i); Console.ReadKey(); } } } |
هنگامی که کد بالا کامال شده و اجرا شود، نتیجه ی زیر را تولید می کند:
1 | 5673 |
متد های تبدیل نوع در سی شارپ
در زبان برنامه نویسی C# برای تبدیل انواع به یک دیگر می توانید از متد های درون ساخت (از پیش تعریف شده) استفاده کنید.
ردیف | متد و توضیحات |
1 | ToBoolean : یک نوع را به نوع boolean تبدیل می کند (اگر ممکن باشد). |
2 | ToByte : یک نوع را به نوع byte تبدیل می کند. |
3 | ToChar : یک نوع را به نوع char تبدیل می کند (اگر ممکن باشد). |
4 | ToDateTime : یک نوع (int یا string) را به نوع date-time تبدیل می کند. |
5 | ToDecimal : یک نوع int یا float را به نوع decimal تبدیل می کند. |
6 | ToDouble : یک نوع را به نوع double تبدیل می کند. |
7 | ToInt16 : یک نوع را به نوع int (16 بیتی) تبدیل می کند. |
8 | ToInt32 : یک نوع را به نوع int (32 بیتی) تبدیل می کند. |
9 | ToInt64 : یک نوع را به نوع int (64 بیتی) تبدیل می کند. |
10 | ToSbyte : یک نوع را به نوع signed byte تبدیل می کند. |
11 | ToSingle : یک نوع را به نوع float کوچک تبدیل می کند. |
12 | ToString : یک نوع را به نوع string تبدیل می کند. |
13 | ToType : یک نوع را به یک نوع مشخص شده تبدیل می کند. |
14 | ToUInt16 : یک نوع را به نوع int مثبت تبدیل می کند. |
15 | ToUInt32 : یک نوع را به نوع long مثبت تبدیل می کند. |
16 | ToUInt64 : یک نوع را به نوع int مثبت بزرگ تبدیل می کند. |
مثال زیر چند نوع مختلف را به نوع string تبدیل می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; namespace TypeConversionApplication { class StringConversion { static void Main(string[] args) { int i = 75; float f = 53.005f; double d = 2345.7652; bool b = true; Console.WriteLine(i.ToString()); Console.WriteLine(f.ToString()); Console.WriteLine(d.ToString()); Console.WriteLine(b.ToString()); Console.ReadKey(); } } } |
زمانی که کد بالا توسط کامپایلر سی شارپ کامپایل و اجرا شود، نتیجه زیر را تولید می کنید:
1 2 3 4 5 6 7 | 75 53.005 2345.7652 True |
برای تبدیل یک متغیر از نوع enum به نوع int و برعکس چیکار باید بکنیم؟
سلام..سوالتونو تو انجمن سایت مطرح کنید تا بررسی شه.
با سلام خدمت شما ظاهرا اشتباهی پیش آمده چون وقتی که هر یک از فرامین لیست شده در جدول بالا را اجرا می کنیم پیغام خطا می دهد که متغیر فلان متد مورد نظز را ندارد و پیغامی مشابه زیر دیافت می کنیم : Error(s): (10:24) 'float' does not contain a definition for 'ToInt32' and no accessible extension method 'ToInt32' accepting a first argument of type 'float' could be found (are you missing a using directive or an assembly reference?)
سلام...اگه میتونید مشکلتونو به همراه کدی که نوشتین و کار نمیکنه...داخل انجمن سایت قرار بدین تا بررسی شه.