Tutorials of .Net Framework Part(10)

Constructor

Constructor အကြောင်းကို ကျွန်တော် အပေါ်​မှာ​အနည်းငယ်​ပြော​ခဲ့​ပါ​တယ်။Object ဆောက်​တဲ့​အခန်း​မှာ​ပါ။မှတ်မိ​ကြ​မှာ​ပါ…။Constructor လို့​ဖြစ်လာ​တာ​နဲ့class name နဲ့​တူ​ကို​တူ​ရ​ပါ​မယ်။ နောက်​တစ်​ချက်​က Constructor ဆို​တာ​က Method တစ်​ခု​ပါ​ဘဲ။

ဘေး​နား​က () ကို​ကြည့်​ချင်း​အား​ဖြင့်​သိ​နိုင်​ပါ​တယ်။ဒါပေမဲ့​သူ​က ဘာ Return Type မှ​မ​ပါ​တာ​ကို​တွေ့​ရ​ပါ​တယ်။ ဘာ​တောင်​မ​ပါ​ဘူး​လဲဆို​တော့ void ဆို​တဲ့ return မ​ပြန်​တဲ့ Type တောင် မ​ပါ​ဘူး​ဗျ။ကျွန်တော်​တို့​အပေါ်​မှာ object ဆောက်​ခဲ့​ကြ​ပါ​တယ်။အဲ့​ဒီ​တုန်း​က ကျွန်တော် တို့Constructor အကြောင်း​ကို​သိ​ခဲ့​တယ်။ကျွန်တော်​တို့​ဘယ်​နေရာ​မှာ​မ​ဆို object ဆောက်​လိုက်​ရင် CLR က​သူ့​အလိုလို Constructor အခွံ​ကြီး​ဘဲ​ဆောက်​ပေး​ပါ​တယ်။Constructor အခွံ​ကြီး​ဘဲ​ဆို​တာ ဘာ​လဲဆို​တော့ နောက်ကျ​ရင် သိ​ပါ​လိမ့်​မယ်။

Constructor က​ဘာ​လုပ်​လဲဆို​တော့ ကျွန်တော် တို့object ဆောက်​ပြီး​တော့​ရေး​လိုက်​တဲ့​အခါ​တိုင်း သူ့​ကို​သွား​ပြီး​တော့ တစ်​ခါ Run ပါ​တယ်။ဘယ်​လို​လဲဆို​တော့ အားလုံး​နားလည်​အောင် ရှင်း​ပြ​ပါ​မယ်။ကျွန်တော် တို့object နှစ်​ခု​ဆောက်​လိုက်​တယ်​ဗျာ။အဲ့​ဒီ ပထမ object အောက်​မှာ s1.name=”BillGate”; ဆို​ပြီး​တော့​ရေး​လိုက်​တယ်။

နောက် object တစ်​ခု​အောက်​မှာ s2.name=”Microsoft”; ဆို​ပြီး​တော့​ရေး​လိုက်​တယ်။အဲ့​ဒီ​နှစ်​ခု​ကို code တွေ​ထပ်​ရေး​ပြီး​တော့ Run လိုက်​ရင် ပုံ​မှန်​ဆို​ရင် စာ​နှစ်​ကြောင်း​ဘဲပေါ်​လိမ့်​မယ်။ဘာ​ဖြစ်​လို့​လဲဆို​ရင် ကျွန်တော် ပြောထား​တဲ့​အတိုင်း​ဘဲ​လေ။ကျွန်တော် တို့​က ကိုယ့်​ဘာသာ​ကို Constructor မ​ဆောက်​ရင် CLR က​သူ့​ဘာသာ​သူ​အလို​အလျှောက် အခွံ​ကြီး​ဘဲ​ဆောက်​သွား​လို့​ပါ။

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

အခု​ပြော​နေ​ရင်​နည်း⁠နည်း​တော့​ရှုပ်​နေ​လိမ့်​မယ်။ဒါ​ကြောင့် ကျွန်တော် တို့Program လေး​ရေး​ပြီး​တော့​စမ်း​ကြည့်​လိုက်​ကြ​ရအောင်။

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Console1

{

class ConstructorsTest

{

private string name;

private int age;

private int mark;

public ConstructorsTest()

{

Console.WriteLine(“Constructor Called”);

}

private void Display()

{

Console.WriteLine(“My name is {0} , I’m {1} and I got {2} marks”, name, age, mark);

Console.WriteLine(“”);

}

public static void Main()

{

ConstructorsTest conTest1 = new ConstructorsTest();

conTest1.name = “Zaw Zaw”;

conTest1.age = 18;

conTest1.mark = 1000;

conTest1.Display();

ConstructorsTest conTest2 = new ConstructorsTest();

conTest2.name = “Aung Aung”;

conTest2.age = 19;

conTest2.mark = 900;

conTest2.Display();

ConstructorsTest conTest3 = new ConstructorsTest();

conTest3.name = “Maung Maung”;

conTest3.age = 20;

conTest3.mark = 800;

conTest3.Display();

}

}

}

output ကတော့​ဒီ​လို​လေးပေါ်​လာ​ပါ​လိမ့်​မယ်။

ဆို​ပြီး​တော့ ကျွန်တော် ရေး​ပေး​ထား​ပါ​တယ်။ဒါ​လေး​ကို​အရင်​ရေး​ပြီး​တော့​စမ်း​ကြည့်​လိုက်​ပါ။စမ်း​ပြီး​ရင်​တော့ ကျွန်တော် ရှင်း​ပါ​မယ်။အဲ့​ဒီ​မှာ အရင်​ဆုံး Constructor Called ဆို​တဲ့ စာ​ကြောင်း​လေး​ကို​တွေ့​ရ​မှာ​ဖြစ်​ပါ​တယ်။ပြီး​မှ Zaw Zaw 18 1000 ကို​တွေ့​ရ​မှာ​ဖြစ်​ပါ​တယ်။ပြီး​ရင် နောက်​တစ်​ကြောင်း​မှာ​က Constructor Called ဆို​တဲ့​စာ​ကြောင်း​လေး​ကို ပြန်​တွေ့​ရ​မှာ​ဖြစ်​ပါ​တယ်။

အဲ့​ဒါ​တွေ​ဖြစ်​ရ​တာ​ဘာ​ကြောင့်​လဲဆို​တော့ ကျွန်တော် အပေါ်​မှာ​ပြောထား​သ​လို object တစ်​ခု​ကို Run ပြီး​တဲ့​အခါ​တိုင်း Constructor ကို​သွား​ပြီး​တော့ Run ပါ​တယ်။ဆို​တဲ့​အတိုင်း​ဘဲ ကျွန်တော် က​အပေါ်​မှာ object သုံး​ခု​ဆောက်​ထား​တယ်။ ဒါ​ကြောင့် Object သုံး​ခု​ဆို​တော့ Constructor သုံး​ခု​ထွက်ပေါ်​လာ​တာ​ပေါ့​ဗျာ။

အဲ့​ဒီ Constructor() ဆို​တဲ့ Method ထဲ​မှာ ကိုယ်​ကြိုက်​သ​လို​ကြေညာ​လို့​ရ​ပါ​တယ်။ဒါ​ဆို​ရင် အားလုံး​နားလည်​သဘောပေါက်​ပြီ​လို့​ကျွန်တော် ယူဆ​ပါ​တယ်။ဒီ​ထက်​ပို​ပြီး​တော့ နားလည်​သွား​အောင် ကျွန်တော် နောက်ထပ် Program တစ်​ခု​ထပ်​ရေး​ပြီး​တော့ စမ်း​ကြည့်​လိုက်​ရင် တော့ Constructor အကြောင်း​ကို​သေချာ​နားလည်​သဘောပေါက်​သွား​ပါ​လိမ့်​မယ်။

ကဲ​ဆက်​ရေး​ကြည့်​လိုက်​ကြ​ရအောင်။

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Console1.Books

{

class ConstructorsTest

{

private string name;

private int age;

private int mark;

public ConstructorsTest()

{

Console.WriteLine(“Enter the First Number”);

int num1 = int.Parse(Console.ReadLine());

Console.WriteLine(“Enter the Second Number”);

int num2 = int.Parse(Console.ReadLine());

int sum = num1 + num2;

Console.WriteLine(“Result is “+sum);

Console.WriteLine(“”);

}

private void Display()

{

Console.WriteLine(“My name is {0} , I’m {1} and I got {2} marks”, name, age, mark);

Console.WriteLine(“”);

}

public static void Main()

{

ConstructorsTest conTest1 = new ConstructorsTest();

conTest1.name = “Zaw Zaw”;

conTest1.age = 18;

conTest1.mark = 1000;

conTest1.Display();

ConstructorsTest conTest2 = new ConstructorsTest();

conTest2.name = “Aung Aung”;

conTest2.age = 19;

conTest2.mark = 900;

conTest2.Display();

ConstructorsTest conTest3 = new ConstructorsTest();

conTest3.name = “Maung Maung”;

conTest3.age = 20;

conTest3.mark = 800;

conTest3.Display();

}

}

}

Result ကတော့​ဒီ​လို​ထွက်​လာ​မှာ​ပါ။

အဲ့​ဒါ​လေး​ကို​စမ်း​ကြည့်​လိုက်​ပါ​အုံး။ဒါ​လေး​ကို​တော့ ကျွန်တော် မ​ပြော​တော့​ဘူးနော်။လွယ်⁠လွယ်​လေး​ပါ။ပြီး​ရင် ကိုယ့်​ဘာသာ​ကိုယ် ဘယ်​ဟာ​လေး​က​ဘာ​ကြောင့်​ဖြစ်ပေါ်​လာ​သလဲ​ဆို​တာ​ကို​သေသေချာချာ​လေး လေ့​လာ​ကြည့်​လိုက်​ပါ။ အကျဉ်း​ချုပ်​ပြော​ရ​ရင် Constructor ဆို​တာ​က တူညီ​တဲ့ အလုပ်​တွေ​ကို လုပ်​ချင်​တယ်​ဆို​ရင်​သူ့​အထဲ
မှာ​သွား​ရေးထား​လိုက်​ရုံ​ပါ​ဘဲ။

ကဲ…ဒီ​လောက်​ဆို​ရင် နားလည်​သဘောပေါက်​မယ်​လို့မျှော်​လင့်​ပါ​တယ်။

ဆုံး​သည်​ထိ​ဖတ်​သော​ကြောင့် ကျေးဇူးတင်​ပါ​တယ်။

အားလုံး​ဘဲ​ကျန်းမာ​ရွှင်လန်း​ကြ​ပါ​စေ။

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

Facebook comments:

6 Responses

  1. zinyaw says:

    လာဖတ်သွားါတယ်အကိုရေ ကျေးဇူးပါ

  2. aungkyaw says:

    ကိုဇော်ရေ အမြဲတမ်းအားပေးနေတယ်ဗျာ မြန်မာလူမျိုးတွေကို မြန်မာဘာသာလေးနဲ့
    ရှင်းပြတဲ့အတွက်အရမ်းကျေးဇူးတင်တယ်

  3. YaungSin says:

    Hi Ko ZawMin, May I know this Part (10) is the last article for Tutorials of .Net Framework? Thanks.

  4. Zawmin says:

    အဲ့ဒီလိုတော့ မဟုတ်ဘူးခင်ဗျ… ဒါက ပြီးဖို့နေနေသာသာ အစတောင် မရှိသေးဘူး…
    ဘာဖြစ်လို့ဆက်မရေးသလဲဆိုတော့ ကျွန်တော်မအားသေးတဲ့အပြင် ဒါကိုလေ့လာတဲ့သူ အစဉ်တစိုက်လိုက်လုပ်တဲ့သူ မရှိသလောက်နည်းလို့ ကျွန်တော်ဆက်မရေးတော့တာဗျ…
    ဘာဖြစ်လို့ Reply တွေမပြန်သလဲ ဆိုတာ ကိုထည့်ရေးကြည့်တော့ ပြောခံထိသဗျ…
    အဲ့ဒါတွေကြောင့်ပါ…
    ကျေးဇူးတင်ပါတယ်… :)

  5. YaungSin says:

    ဟုတ်ကဲ့ ဆက်ပြီးရေးပါဦး ကိုဇော်မင်းရဲ. Tutorial တွေကိုလိုက်ပြီးလုပ်ပါတယ် ပြီးတော့တခြား C# Coding Standards နဲ. Tutorials of ASP.net 3.5 post တွေကိုလဲလေ့လာနေပါတယ်
    မြန်မာလိုရှင်းပြထားတာ အရမ်းကောင်းပါတယ်
    ကျေးဇူးတင်ပါတယ်

  6. Walar says:

    ကိုဇော်မင်းရေ အချိန်ရရင် WCF, WPF,LINQ အကြောင်းလေးတွေကို ရေးစေချင်ပါတယ်

    Web service ကနေ WCF ကို ပြောင်းပြီးသုံးချင်လို့ပါ ကိုဇော်မင်းရေးထားတာတွေက ရှင်းလည်းရှင်း

    နားလည်လွယ်လို့ ကျေးဇူးတယ်ပါတယ်

Leave a comment


*