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

Type Conversion (Part -4)

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


15. int.Parse()

String ကို int အဖြစ် ပြောင်းနိုင်ပါတယ်။

string ageText = "20";
int age = int.Parse(ageText);

Console.WriteLine($"Age: {age}");

User Input နမူနာ—

Console.Write("Enter quantity: ");
int quantity = int.Parse(Console.ReadLine()!);

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

ဒီ Code ထဲက ! က ဒီနေရာမှာ Value ဟာ null မဖြစ်ဘူးလို့ Compiler ကို ပြောတာဖြစ်ပါတယ်။ ဒါပေမဲ့ Runtime မှာ အသုံးပြုသူရဲ့ Input မှားနေရင် Error ဖြစ်နိုင်သေးပါတယ်။

16. double.Parse() နှင့် decimal.Parse()

string markText = "85.5";
double mark = double.Parse(markText);

string priceText = "25000.50";
decimal price = decimal.Parse(priceText);

Console.WriteLine($"Mark: {mark}");
Console.WriteLine($"Price: {price}");

Output—

Mark: 85.5
Price: 25000.50


17. Parse() အသုံးပြုရာမှာ ဖြစ်နိုင်သော Error

အောက်ပါ Code ကို ကြည့်ပါ။

string input = "Hello";
int number = int.Parse(input);

"Hello" က Number ပုံစံမဟုတ်တဲ့အတွက် Program Run နေစဉ် FormatException ဖြစ်ပါလိမ့်မယ်။

အောက်ပါ Input များက int.Parse() မှာ Error ဖြစ်နိုင်ပါတယ်။

"Hello"
"Ten"
"10.5"
""

ဒါကြောင့် အသုံးပြုသူထည့်လိုက်တဲ့ Input မှန်ကန်မယ်လို့ အမြဲတမ်း ယူဆလို့မရပါဘူး။

User Input အတွက် Parse() ထက် TryParse() ကို အသုံးပြုတာ ပိုလုံခြုံပါတယ်။


TryParse Method

18. TryParse() ဆိုတာဘာလဲ

TryParse() က String Value ကို သတ်မှတ်ထားတဲ့ Data Type အဖြစ် ပြောင်းလဲဖို့ ကြိုးစားပေးပါတယ်။

Conversion အောင်မြင်ရင် true ပြန်ပေးပြီး မအောင်မြင်ရင် false ပြန်ပေးပါတယ်။ Conversion မအောင်မြင်တဲ့အခါ Program ကို Error ဖြစ်ပြီး ရပ်တန့်မသွားစေပါဘူး။

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

bool success = int.TryParse(input, out int result);

ဒီနေရာမှာ—

  • input က ပြောင်းလဲမယ့် String ဖြစ်ပါတယ်။
  • out int result က အောင်မြင်ရင် ပြောင်းလဲပြီးသား Value သိမ်းမယ့် Variable ဖြစ်ပါတယ်။
  • Return Value က အောင်မြင်၊ မအောင်မြင်ကို ဖော်ပြတဲ့ bool ဖြစ်ပါတယ်။

19. int.TryParse() အခြေခံနမူနာ

string input = "25";

bool success = int.TryParse(input, out int age);

Console.WriteLine($"Success: {success}");
Console.WriteLine($"Age: {age}");

Output—

Success: True
Age: 25

Input မမှန်တဲ့အခါ—

string input = "Twenty";

bool success = int.TryParse(input, out int age);

Console.WriteLine($"Success: {success}");
Console.WriteLine($"Age: {age}");

Output—

Success: False
Age: 0

Conversion မအောင်မြင်ပေမယ့် Program Error ဖြစ်ပြီး ရပ်မသွားပါဘူး။


20. if နဲ့ TryParse() ပေါင်းစပ်အသုံးပြုခြင်း

Console.Write("Enter your age: ");
string? input = Console.ReadLine();

if (int.TryParse(input, out int age))
{
    Console.WriteLine($"Your age is {age}.");
}
else
{
    Console.WriteLine("Invalid input. Please enter a valid whole number.");
}

အသုံးပြုသူက 18 ထည့်ရင်—

Your age is 18.

အသုံးပြုသူက Hello ထည့်ရင်—

Invalid input. Please enter a valid whole number.

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

ဒီနည်းက User Input မှားနေရင်တောင် Program မရပ်ဘဲ သင့်တော်တဲ့ Message ပြန်ပြနိုင်ပါတယ်။


21. decimal.TryParse()

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

Console.Write("Enter product price: ");
string? input = Console.ReadLine();

if (decimal.TryParse(input, out decimal price))
{
    Console.WriteLine($"Product Price: {price}");
}
else
{
    Console.WriteLine("Invalid price. Please enter a valid number.");
}

22. double.TryParse()

ဒဿမကိန်းကို လုံခြုံစွာ ပြောင်းဖို့—

Console.Write("Enter average mark: ");
string? input = Console.ReadLine();

if (double.TryParse(input, out double averageMark))
{
    Console.WriteLine($"Average Mark: {averageMark}");
}
else
{
    Console.WriteLine("Invalid mark.");
}

23. bool.TryParse()

Console.Write("Enter active status (true/false): ");
string? input = Console.ReadLine();

if (bool.TryParse(input, out bool isActive))
{
    Console.WriteLine($"Active Status: {isActive}");
}
else
{
    Console.WriteLine("Please enter true or false.");
}

bool.TryParse() က true နဲ့ false စာသားများကို လက်ခံနိုင်ပါတယ်။


24. DateTime.TryParse()

User ထည့်တဲ့ ရက်စွဲကို စစ်ဆေးပြီး DateTime အဖြစ် ပြောင်းနိုင်ပါတယ်။

Console.Write("Enter enrollment date: ");
string? input = Console.ReadLine();

if (DateTime.TryParse(input, out DateTime enrollmentDate))
{
    Console.WriteLine(
        $"Enrollment Date: {enrollmentDate:dd/MM/yyyy}");
}
else
{
    Console.WriteLine("Invalid date.");
}

Date Input ကို လက်ခံတဲ့ပုံစံဟာ Computer ရဲ့ Region Setting အပေါ်မူတည်နိုင်ပါတယ်။ အသုံးပြုသူကို လိုအပ်တဲ့ Format ကို ပြောပြထားတာ ပိုရှင်းလင်းပါတယ်။

Console.Write("Enter date (yyyy-MM-dd): ");

တိကျတဲ့ Date Format ကိုသာ လက်ခံဖို့လိုတဲ့အခါ နောက်ပိုင်းမှာ DateTime.TryParseExact() ကို အသုံးပြုနိုင်ပါတယ်။

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