ခေါင်းစဉ် 52 / 63 30 မိနစ်

Type Conversion (Part -5)

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


Convert, Parse နဲ့ TryParse ကွာခြားချက်

25. နည်းလမ်းသုံးမျိုး နှိုင်းယှဉ်ခြင်း

Convert အသုံးပြုခြင်း

int age = Convert.ToInt32(Console.ReadLine());

Parse အသုံးပြုခြင်း

int age = int.Parse(Console.ReadLine()!);

TryParse အသုံးပြုခြင်း

if (int.TryParse(Console.ReadLine(), out int age))
{
    Console.WriteLine(age);
}
else
{
    Console.WriteLine("Invalid input.");
}

အဓိကကွာခြားချက်—

နည်းလမ်းအသုံးပြုပုံInput မှားလျှင်
CastingNumeric Types များအကြားပြောင်းခြင်းData ဆုံးရှုံးနိုင်
ConvertData Type အမျိုးမျိုး ပြောင်းခြင်းError ဖြစ်နိုင်
ParseString မှ သက်ဆိုင်ရာ Type သို့ပြောင်းခြင်းError ဖြစ်နိုင်
TryParseString ကို လုံခြုံစွာပြောင်းရန် ကြိုးစားခြင်းfalse ပြန်ပေးပြီး Program မရပ်

အသုံးပြုသူထည့်တဲ့ Data ကို ကိုယ်တိုင်မထိန်းချုပ်နိုင်တာကြောင့် User Input အတွက် TryParse() ကို အသုံးပြုတာ အကောင်းဆုံးဖြစ်ပါတယ်။


26. Casting နဲ့ Convert.ToInt32() ကွာခြားချက်

ဒဿမကိန်းကို ကိန်းပြည့်ပြောင်းတဲ့အခါ Casting နဲ့ Convert.ToInt32() ရဲ့ Result က မတူနိုင်ပါတယ်။

Casting—

double value = 15.8;
int result = (int)value;

Console.WriteLine(result);

Output—

15

Convert.ToInt32()

double value = 15.8;
int result = Convert.ToInt32(value);

Console.WriteLine(result);

Output—

16

Casting က ဒဿမပိုင်းကို ဖြုတ်ပစ်ပါတယ်။ Convert.ToInt32() က နီးစပ်ရာ ကိန်းပြည့်သို့ Round လုပ်ပေးပါတယ်။

ဒါကြောင့် Conversion နည်းလမ်းကို ရွေးတဲ့အခါ လိုချင်တဲ့ Result ကို သေချာစဉ်းစားရပါမယ်။

27. String သို့ ပြောင်းခြင်း

Data Type အများစုကို ToString() နဲ့ String အဖြစ် ပြောင်းနိုင်ပါတယ်။

int age = 18;
string ageText = age.ToString();

decimal price = 15000.50m;
string priceText = price.ToString();

bool isActive = true;
string activeText = isActive.ToString();

DateTime today = DateTime.Today;
string dateText = today.ToString("dd/MM/yyyy");

နမူနာ—

int quantity = 5;
decimal price = 15000m;

string message =
    "Quantity: " + quantity.ToString() +
    ", Price: " + price.ToString();

Console.WriteLine(message);

String Interpolation အသုံးပြုရင် C# က Value တွေကို စာသားအဖြစ် အလိုအလျောက် ပြသပေးပါတယ်။

Console.WriteLine($"Quantity: {quantity}, Price: {price}");

ဒီပုံစံက ပိုမိုရှင်းလင်းပါတယ်။


28. Type Conversion မှာ ဖြစ်လေ့ရှိသော Error များ

Number မဟုတ်သော Input

int age = int.Parse("Hello");

"Hello" က Integer မဟုတ်တဲ့အတွက် Error ဖြစ်ပါတယ်။

ဒဿမကိန်းကို Integer Parse ပြုလုပ်ခြင်း

int number = int.Parse("10.5");

"10.5" က ကိန်းပြည့်မဟုတ်တဲ့အတွက် Error ဖြစ်ပါတယ်။

ဒဿမကိန်းအဖြစ် ပြောင်းလိုရင်—

double number = double.Parse("10.5");

ကို အသုံးပြုရပါမယ်။

Data Type ရဲ့ Range ထက်ကျော်လွန်ခြင်း

byte number = byte.Parse("300");

byte က 0 မှ 255 အထိပဲ သိမ်းနိုင်လို့ 300 ကို ပြောင်းတဲ့အခါ Error ဖြစ်နိုင်ပါတယ်။

Empty Input
int number = int.Parse("");

String အလွတ်က Number မဟုတ်တဲ့အတွက် Error ဖြစ်ပါတယ်။

ဒီလိုအခြေအနေတွေကို လုံခြုံစွာ ကိုင်တွယ်ဖို့ TryParse() ကို အသုံးပြုသင့်ပါတယ်။


29. Safe Addition Program

User Input ကို TryParse() နဲ့ စစ်ဆေးပြီး ကိန်းနှစ်ခုပေါင်းတဲ့ Program ရေးကြည့်ရအောင်။

Console.Write("Enter first number: ");
string? firstInput = Console.ReadLine();

Console.Write("Enter second number: ");
string? secondInput = Console.ReadLine();

bool isFirstValid =
    int.TryParse(firstInput, out int firstNumber);

bool isSecondValid =
    int.TryParse(secondInput, out int secondNumber);

if (isFirstValid && isSecondValid)
{
    int result = firstNumber + secondNumber;

    Console.WriteLine(
        $"{firstNumber} + {secondNumber} = {result}");
}
else
{
    Console.WriteLine(
        "Invalid input. Please enter whole numbers only.");
}

Input မှန်ကန်ရင်—

Enter first number: 10
Enter second number: 20
10 + 20 = 30

Input မှားရင်—

Enter first number: Ten
Enter second number: 20
Invalid input. Please enter whole numbers only.

လို့ ပြပါလိမ့်မယ်။

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