ခေါင်းစဉ် 49 / 63 20 မိနစ်

Type Conversion (Part -2)

ဒီသင်ခန်းစာမှာ Data Type တစ်မျိုးမှ အခြား Data Type တစ်မျိုးသို့ ပြောင်းလဲခြင်းဖြစ်သော Type Conversion အကြောင်း လေ့လာသွားမည်ဖြစ်သည်။ Implicit Conversion၊ Explicit Casting၊ Convert Class၊ Parse နှင့် TryParse တို့၏ ကွာခြားချက်များ၊ String နှင့် Number အပြန်အလှန်ပြောင်းလဲပုံ၊ User Input ကို Error မဖြစ်အောင် စစ်ဆေးလက်ခံပုံတို့ကို လက်တွေ့ C# နမူနာများဖြင့် ရှင်းလင်းထားသည်။


4. Implicit Conversion လမ်းကြောင်းများ

အသုံးများတဲ့ Implicit Conversion အချို့က—

byte → short → int → long → float → double

ဥပမာ—

byte smallNumber = 100;
short shortNumber = smallNumber;
int intNumber = shortNumber;
long longNumber = intNumber;
double doubleNumber = longNumber;

သေးငယ်တဲ့ Container ထဲက Data ကို ပိုကြီးတဲ့ Container ထဲ ပြောင်းထည့်သလို စဉ်းစားနိုင်ပါတယ်။

အသေးစား Data Type → အကြီးစား Data Type

ဒီလိုပြောင်းလဲရာမှာ Data ဆုံးရှုံးနိုင်ခြေ နည်းပါတယ်။

Explicit Conversion

5. Explicit Conversion ဆိုတာဘာလဲ

ပိုမိုကြီးမားတဲ့ Data Type ကနေ ပိုသေးငယ်တဲ့ Data Type သို့ ပြောင်းတဲ့အခါ Data တချို့ ဆုံးရှုံးနိုင်ပါတယ်။

ဒါကြောင့် C# က အလိုအလျောက် မပြောင်းပေးဘဲ Programmer ကိုယ်တိုင် Conversion လုပ်ချင်ကြောင်း ရှင်းလင်းစွာ ရေးပေးရပါတယ်။

ဒီလို Conversion ကို Explicit Conversion သို့မဟုတ် Casting လို့ ခေါ်ပါတယ်။

အခြေခံပုံစံ—

targetType variableName = (targetType)value;

နမူနာ—

double price = 1500.75;
int convertedPrice = (int)price;

Console.WriteLine(convertedPrice);

Output—

1500

double ကနေ int ပြောင်းလိုက်တဲ့အခါ ဒဿမနောက်ပိုင်း .75 ဆုံးရှုံးသွားပါတယ်။

Casting က ဒဿမတန်ဖိုးကို အနီးဆုံးကိန်းသို့ Round လုပ်ပေးတာမဟုတ်ဘဲ ဒဿမပိုင်းကို ဖြုတ်ပစ်တာ ဖြစ်ပါတယ်။

6. Explicit Casting နမူနာ
double averageMark = 89.95;
int wholeNumberMark = (int)averageMark;

Console.WriteLine($"Original Mark: {averageMark}");
Console.WriteLine($"Converted Mark: {wholeNumberMark}");

Output—

Original Mark: 89.95
Converted Mark: 89

ဒီနေရာမှာ .95 ကို ဖြုတ်ပစ်လိုက်တဲ့အတွက် Result က 89 ဖြစ်ပါတယ်။

အနုတ်ကိန်းမှာလည်း သုညဘက်သို့ ဒဿမပိုင်းကို ဖြုတ်ပါတယ်။

double value = -10.75;
int result = (int)value;

Console.WriteLine(result);

Output—

-10

7. Casting လုပ်ရာမှာ သတိပြုရန်

ပိုကြီးတဲ့ Value ကို သေးငယ်တဲ့ Data Type ထဲ ပြောင်းထည့်ရင် Value မှားသွားနိုင်ပါတယ်။

ဥပမာ—

int number = 300;
byte smallNumber = (byte)number;

Console.WriteLine(smallNumber);

byte က 0 မှ 255 အထိပဲ သိမ်းနိုင်ပါတယ်။ 300 ကို မဆံ့တဲ့အတွက် မျှော်လင့်ထားတဲ့ Result မရနိုင်ပါဘူး။

ဒါကြောင့် Explicit Casting မလုပ်ခင် Target Data Type က Value ကို သိမ်းနိုင်သလား စစ်ဆေးဖို့ အရေးကြီးပါတယ်။

Progress သိမ်းလိုပါက Login ဝင်ပါ။ Login မဝင်ဘဲလည်း ခေါင်းစဉ်အားလုံးကို လေ့လာနိုင်ပါသည်။