Tutorials of .Net Framework Part(7)

Tutorials of .Net Framework Part(1)(2)(3)(4)
(5)(6)

Type Conversion

ကျွန်တော် အခုပြောမဲ့အကြောင်းကတော့ Type Conversion ဆိုတာဘဲဖြစ်ပါတယ်။Type Conversion ဆိုတာက Type တွေကို ပြောင်းလဲပေးတာဖြစ်ပါတယ်။ဘယ်လိုပြောင်းလဲပေးလဲဆိုတော့ ဥပမာပြောရရင် int ကို Byte အဖြစ်ပြောင်းလဲပြီးတော့ byte ထဲကို ထည့်တာဖြစ်ပါတယ်။

Type Conversion မှာနှစ်မျိုးရှိပါတယ်။

1.Implicit Conversion   (နိမ့် ရာကနေ မြှင့်ရာသို့ပြောင်းလဲခြင်း)

2.Explicit Conversion    (မြှင့်ရာကနေ နိမ့်ရာသို့ပြောင်းလဲခြင်း)

ဆိုပြီးတော့ နှစ်မျိုးရှိပါတယ်။ပထမဖြစ်တဲ့ Implicit Conversion ကဘာလဲဆိုတော့ ကျွန်တော် အပေါ်မှာရေးထားသလိုဘဲ နိမ့် ရာကနေမြှင့်ရာကိုပြောင်းလဲပေးတာဖြစ်ပါတယ်။ဒုတိယတစ်ခုကတော့ မြှင့်ရာကနေ နိမ့်ရာကို ပြောင်းလဲပေးတာဖြစ်ပါတယ်။နားလည်အောင် ရှင်းရမယ်ဆိုရင်ဗျာ သာမန်ဗလာစာအုပ် ဆယ်အုပ်ဆန့်တဲ့ သာမန်အိတ်ထဲကို A4 စာအုပ် အုပ်နှစ်ဆယ် ထည့်မယ်ဆိုရင် ဘယ်မှာလာပြီးတော့ ဆန့်တော့မှာတုန်းဗျ။

ဒါကြောင့် ကျွန်တော်အခုပြောနေတဲ့ Implicit Conversion ဆိုတာက အဲ့ဒီ A4 စာအုပ်နှစ်ဆယ်ကို အဲ့ဒီ အိတ်ထဲကို ထည့်လို့ရအောင် ချုံ့ချဲ့ပေးမဲ့ အရာကို ပြောတာဖြစ်ပါတယ်။Program အနေနဲ့ပြောရရင် int သည် byte ထက်များစွာကြီးသည်။int က -2147483648 to 2147483647 အထိရှိပါတယ်။Byte ကတော့ 0 to 255အထိဘဲရှိပါတယ်။ကျက်ချင်ရင်တော့ ကျက်ထားလိုက်ပါ။

MCTS စာမေးပွဲတွေမှာပါတတ်လို့ပါ။ဆက်ပြောရအောင်။ကျွန်တော် က အဲ့ဒီ int ကို byteထဲကိုထည့်ချင်တာ။ကြီးရာကနေ ငယ်ရာကို ဘယ်လိုမှထည့်လို့မရဘူးဗျ။မယုံဘူးဆိုရင်တော့ assign လေးလုပ်ပြီးတော့ထည့်ကြည့်လိုက်ဗျို့။

ဒါကြောင့် ကျွန်တော် Conversion ဆိုတဲ့ နည်းကို သုံးပြီးတော့ ကျွန်တော် ကြီးတဲ့ int ကို သူ့ထက်ငယ်တဲ့ Byte ထဲကို ကျွန်တော် Programလေးတစ်ပုဒ်ရေးပြီးထည့်ပြပါမယ်။

အောက်မှာကြည့်ပါ။

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MyBooks

{

class Student

{

static void Main()

{

int x;

x = 10;

byte b;

b = (byte)x;

Console.WriteLine(b);

}

}

}

ဆိုပြီးတော့ ကျွန်တော်ရေးပြထားပါတယ်။ကျွန်တော် ရှင်းပါမယ်။အဲ့ဒီမှာ ကျွန်တော် int x; လို့ကြေညာပြီး အောက်မှာ x ထဲကို ကိန်း 10; ထည့်လိုက်ပါတယ်။ပြီးတော့ကျွန်တော် ဆက်ပြီး byte b; ဆိုပြီးကြေညာပါတယ်။အဲ့ဒီကျွန်တော် ကြေညာထားတဲ့ byte ထဲကို int ဖြစ်တဲ့ x ကိုထည့်ချင်လို့အောက်မှာ Conversion ရဲ့ပုံစံဖြစ်တဲ့( မိမိပြောင်းလဲချင်သော Type ကိုထည့်ရန်) ဆိုပြီးတော့ byte ထဲကို int x ပြောင်းထည့်လိုက်ပါတယ်။

ကျွန်တော် သေချာရှင်းရရင်

မိမိပြောင်းထည့်ချင်သော Type ရဲ့Variable=( မိမိပြောင်းလဲချင်သော Type ကိုထည့်ရန် )မိမိပြောင်းချင်တဲ့ Variable

ဆိုပြီးတော့ ကျွန်တော် တို့ပြောင်းလို့ရပါတယ်။အဲ့ဒီမှာ တစ်ခုပြောစရာရှိလာပြီ။ဘာလဲဆိုတော့ အဲ့ဒီလိုပြောင်းတာသည် Data Type တူမှသာပြောင်းလို့ရတာဖြစ်ပါတယ်။ဘယ်လိုလဲဆိုတော့ Integral ဆိုရင် Integral Type ဖြစ်မှဘဲရမှဖြစ်ပါတယ်။ကျွန်တော်ဆိုလိုတာလေးတစ်ချက်လောက်ရှင်းပြပါမယ်။

Integral Type

byte

short

int

long

ဆိုပြီးတော့ ရှိပါတယ်။အဲ့ဒီမှာ ကျွန်တော် က အဲ့ဒီ မှာ int ကို i=10; ဆိုပြီးကြေညာပြီးတော့ char ထဲကိုတော့ သွားထည့်လို့မရဘူးဗျ။ကျွန်တော်အပေါ်မှာပြောခဲ့သလိုပါဘဲ။အမျိုးအစားတူမှရမှာလို့ကျွန်တော် ပြောခဲ့ပါတယ်။

အဲ့ဒီ int ကိုပြောင်းချင်ရင်တော့ သူနဲ့အမျိုးအစားတူတဲ့ byte တို့long တို့shortတို့ကိုတော့ထည့်လို့ရပါတယ်။ကျန်တဲ့ Type တွေကိုတော့မရပါဘူး။ဒါပေမဲ့ခြွင်းချက်တစ်ခုတော့ရှိပါတယ်။ဘာလဲဆိုတော့ ကိန်းရေးတဲ့ Type တွေတူရင်တော့ ရပါတယ်။ဘာပြောတာလဲဗျ ရှုပ်ကုန်ပြီ။မရှုပ်ပါနဲ့။ကျွန်တော် ဆိုလိုချင်တာကိုကျွန်တော် အောက်မှာ Program လေးရေးပြီးတော့ရှင်းပြပါမယ်။ဒါဆိုရင် နားလည်သွားမှာပါ။

သေချာလေးကြည့်လိုက်ပါ။

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MyBooks

{

class Student

{

static void Main()

{

int i;

i = 10;

double d;

d = (double)i;

Console.WriteLine(d);

}

}

}

ဆိုပြီးတော့ရေးကြည့်လိုက်ပါ။အဲ့ဒီမှာ ကျွန်တော် Type မတူတဲ့ int နဲ့double ကိုသုံးထားတာကို တွေ့မှာပါ။ အဲ့ဒီလိုမျိုးတော့ ထည့်လို့ရပါတယ်။ကျွန်တော်ပြောထားသလိုဘဲလေ။ကိန်းဆိုရင်ရတယ်ဆိုပြီးတော့ပါ။ကျန်တဲ့ Type တွေကတော့ သူတို့ရဲ့အမျိုးအစားမှဘဲရပါလိမ့်မယ်။နောက်ဆုံးခြွင်းချက်တစ်ခုကတော့type တွေထဲမှာ ဘုရင်ဖြစ်တဲ့ Object Type ထဲကိုတော့ ရှိသမျှအရာအားလုံးကို ထည့်လို့ရသဗျ။string တွေလည်းရတယ်။

long , int , char မကလို့ကြိုက်တဲ့ Type ထည့်အေးဆေးဘဲ။ဒါပေမဲ့ သူရဲ့နေရာယူတာကတော့ အင်မတန်ကြီးတယ်ဗျ။ ဒါဆိုရင်တော့ပုံမှန်လေးဘဲပြောင်းကြတာပေါ့ဗျာ။များရာကနေ နိမ့်ရာကို ပြောင်းတယ်ဆိုတာကို DownCast လို့ခေါ်ပါတယ်။နည်းရာကနေများရာကို ပြောင်းတယ်ဆိုတာကို UpCastလို့ခေါ်ပါတယ်။ကျွန်တော်အပေါ်မှာပြောင်းခဲ့တဲ့ (byte) စသည်တို့ကို ဘယ်လိုခေါ်လဲဆိုတော့ Type Cast လို့ခေါ်ပါတယ်။ကဲဒီလောက်ဆိုရင် Conversion ကိုသေချာနားလည်သဘောပေါက်ကြပြီလို့ကျွန်တော် ယူဆပါတယ်။ သေချာလေ့လာမယ်ဆိုရင် လွယ်ပါတယ်။

ကျွန်တော်လည်းအတတ်နိုင်ဆုံး နားလည်အောင်ရှင်းပြပေးထားပါတယ်။ကျွန်တော် နောက်ထပ်ဆက်ပြောမဲ့အကြောင်းကတော့ Parse ရဲ့နည်းလမ်းသစ် ဖြစ်တဲ့TryParse ဆိုတဲ့ နည်းကိုအသုံးပြုခြင်းကို ဆက်ပြောမှာဖြစ်ပါတယ်။

ဖတ်ရှုလေ့လာပေးသောကြောင့်ကျေးဇူးတင်ပါတယ်။

ဆက်ပါဦးမည်….။

Facebook comments:

7 Responses

  1. zinyaw says:

    အကို့ပိုစ့်တွေကို စောင့်မျှော်နေပါတယ်..ဆက်လက်အားပေးနေပါတယ်..

  2. Mg Yin says:

    I am also waiting and learning your articles.
    Thank you so much.
    Best regards,,

  3. Zawmin says:

    ကျေးဇူးတင်ပါတယ်ခင်ဗျာ…။
    အခုလိုအားပေးနေတာ သိရတဲ့အတွက် ၀မ်းသာပါတယ်…။ :)

  4. eversmile says:

    hi bro,

    Unicode will correctly work with Crystal Report?
    I have error using unicode in crystal report.

    • eversmile says:

      please quick answer !

      I have to solve this problem now

      In my project, Unicode is not correctly work with crystal report and rdlc report. I am using now Yunghkio font.

      thz.

  5. Zawmin says:

    စိတ်​မ​ရှိ​ပါ​နဲ့​ခင်ဗျာ။ကျွန်တော့်​အိမ်​မှာ​ဒီ​ရက်​ပိုင်း​အတွင်း Connection က​ဘာ​မှ​ကို​လုပ်​လို့​မ​ရ​တဲ့​အတွက်​ကြောင့် ၀င်​မ​ကြည့်​လိုက်​မိ​ပါ​ဘူး။
    ပို့စ်​အသစ်​တင်​ဖို့ Login ဆို​တာ​က တော့​အနား​တောင်​ကပ်​လို့​မ​ရ​ပါ​ဘူး။

    Unicode က Crystal Report မှာ​အလုပ် မ​လုပ်​တော့ ကျွန်တော်မ​စမ်း​ကြည့်​ရ​သေး​ပါ​ဘူး။အကြံပေး​ချင်​တာ​ကတော့ Unicode တခြား Fonts တွေ​နဲ့​စမ်း​သုံး​ကြည့်ပါ​လို့​အကြံပေး​ချင်​ပါ​တယ်။

    ကျေးဇူး​တင်ပါတယ်။

  6. eversmile says:

    အင်းကျွန်တော်စမ်းကြည့်လိုက်ဦး မယ်
    အခု ကွန့်မန့်ရေးတာတောင် ဦး က ဘယ်လိုဖြစ်နေလဲမသိဘူး

    :(

    စိတ်ပိန်တယ်

Leave a comment


*