our notes for our youngers

September 3, 2009

basic of C# (part 17)

Filed under: Basic of C# — Tags: , , , , , — sevenlamp @ 3:22 PM

ဒီေန႔ ကြၽန္ေတာ္ OOP အေၾကာင္း မစခင္ enumeration နဲ႔ structure အေၾကာင္း နည္းနည္း ေျပာခ်င္တယ္ဗ်ာ။  အရင္ဆံုး variable declaration အေၾကာင္းကို ျပန္ေႏႊးရေအာင္။ ကြၽန္ေတာ္တို႔ number တန္ဖိုးတစ္ခု သိမ္းဖို႔ integer အမ်ိဳးအစား variable တစ္ခုေၾကျငာမယ္ဆိုရင္…

int num;

ဆိုျပီးေၾကျငာပါတယ္။ ဒါဆိုရင္ memory ေပၚမွာ integer value တစ္ခုသိမ္းဖို႔ အတြက္ ေနရာ တစ္ေနရာ ယူလိုက္ပါတယ္။ ဟုတ္ျပီ… ဒါဆိုရင္ ကြၽန္ေတာ္က

myOwnType  var1;

ဆိုျပီး ေၾကျငာလိုက္တယ္ ဆိုပါေတာ့။ ဒါဆိုကြၽန္ေတာ္တို႔ program ကို compiler က နားလည္ပါဦးမလား။ နားမလည္နိုင္ေတာ့ပါဘူး ဘာလို႔လဲဆိုေတာ့ myOwnType ဆိုတဲ႔ pre-defined type မဟုတ္တာတစ္ခုကို ေၾကျငာလိုက္လို႔ပါ။ ကြၽန္ေတာ္တို႔ Integer type ေၾကျငာေတာ့ compiler က integer value ေတြထည့္ဖို႔မွန္းသိပါတယ္။ myOwnType ကိုေၾကျငာလိုက္ေတာ့ compiler က ဘာအမ်ိဳးအစားအတြက္ ေၾကျငာေပးရမွန္းမသိဘူး ျဖစ္သြားပါတယ္။ ဒါဆိုရင္ ကြၽန္ေတာ္တို႔က compiler ကို myOwnType ဆိုတာကေတာ့ ဘယ္လို data မ်ိဳးေတြကို သိမ္းခ်င္တာပါဆိုျပီး ေျပာေပးလိုက္ရင္ မျဖစ္ဘူးလား။ ျဖစ္ပါတယ္။ ဘယ္လိုလုပ္ေပးရမွာလဲ ကြၽန္ေတာ္တို႔ user defined data type ေတြ ေၾကျငာေပးရမွာပါ။ ဒီလိုလုပ္ဖို႔အတြက္ ကြၽန္ေတာ္တို႔ enumeration ေတြ၊ structure ေတြ၊ class ေတြ အေၾကာင္းကို သိဖို႔လိုလာပါျပီ။
ကြၽန္ေတာ္တို႔ enumeration ေဆာက္ဖို႔အတြက္ enum keyword ကိုသံုးရပါတယ္။ ဟုတ္ျပီ အခု ကြၽန္ေတာ္ myOwnType ကို create လုပ္ပါေတာ့မယ္။

enum myOwnType
{
	Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
}

myOwnType ထဲမွာ ကြၽန္ေတာ္က ေန႔ ၇ ေန႔ကို သိမ္းခ်င္ပါတယ္လို႔ defined လုပ္လိုက္ပါတယ္။ ကြၽန္ေတာ္က ေန႔ေတြကို စာသားေတြနဲ႔ ေရးလိုက္ေပမယ့္ enumeration မွာ တစ္ကယ္သိမ္းသြားမွာက default integer type ပါ။ ကြၽန္ေတာ္က integer type အစား တျခား ကိန္းျပည့္ number type အျဖစ္ ေၾကျငာခ်င္လို႔လည္း ရပါတယ္။ default အားျဖင့္ 0 ကေန စျပီး တခုစီကို 1 ေပါင္းေပါင္းျပီးသိမ္းသြားမွာပါ။ ဆိုလိုတာက ေရွ႕ဆံုးမွာ ရွိတဲ႔ Sunday ရဲ႕ value က 0 ျဖစ္ျပီး Monday က 1 ၊ Tuesday က 2 ပါ။ ကြၽန္ေတာ္တို႔ ၾကိဳက္တဲ႔ number နဲ႔လည္း ကိုယ္စားျပဳလို႔ ရပါတယ္။ ဥပမာ..

enum myOwnType : byte
{
	Sunday, Monday = 5, Tuesday, Wednesday, Thursday = 100, Friday, Saturday
}

အိုေက ဒီပံုစံအတိုင္းဆိုရင္
Sunday = 0,
Monday = 5,
Tuesday = 6,
Wednesday = 7,
Thursday = 100,
Friday = 101,
Saturday = 102
ဆိုျပီး ျဖစ္သြားပါမယ္။
ကြၽန္ေတာ္တို႔ enumeration test လုပ္ဖို႔ program တစ္ခုေလာက္ ေရးၾကည့္ရေအာင္။

using System;
class Program
{
    enum myOwnType : byte
    {
        Sunday, Monday = 5, Tuesday, Wednesday, Thursday = 100, Friday, Saturday
    }

    static void Main()
    {
        myOwnType wd = myOwnType.Friday;
        int i = 7;
        Console.WriteLine("{0} is {1}", wd, (int)wd);
        Console.WriteLine("{0} is {1}", i, (myOwnType)i);
        Console.ReadLine();
    }
}

Output

Friday is 101
7 is Wednesday

4 Comments »

  1. Very valuable posts, go on. I am expecting ASP.NET too after C#.

    Cheers,

    Comment by Ko Thet — September 3, 2009 @ 3:55 PM

    • sure, i will.
      thanks for viewing my blog,
      cheers,

      Comment by sevenlamp — September 4, 2009 @ 10:02 AM

  2. Very Talent blog !
    Great Writing.

    Comment by awba — October 27, 2009 @ 4:15 PM

    • thanks you for your comment.

      Comment by sevenlamp — October 28, 2009 @ 9:34 AM


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: