our notes for our youngers

July 23, 2009

basic of C# (part 5)

Filed under: Basic of C# — Tags: , , — sevenlamp @ 2:16 PM

data type of C#

အခု C# data type ေတြ အေၾကာင္း ဆက္ေျပာရေအာင္ဗ်ာ။ Data type ဆိုတာဘာလဲ။ ကြၽန္ေတာ္တို႔ user ေတြဆီကေန data အခ်က္အလက္ေတြကို program ထဲမွာ သိမ္းထားဖို႔အတြက္ ကြၽန္ေတာ္တို႔ computer ရဲ့ memory ေပၚမွာ ေနရာသြားယူေပးရတယ္ဗ်။ အဲ့ဒီလို ေနရာယူတာကို Variable Declaration လုပ္တယ္လို႔ ေျပာတာေပါ့။ Variable declaration လုပ္တဲ႔ အခါ memory ေပၚမွာ ကိုယ္သိမ္းခ်င္တဲ႔ data ရဲ့ အမ်ိဳးအစား(data type)ကို ေၾကျငာေပးရတယ္။ Number သိမ္းမွာလား၊ ဒါမွမဟုတ္ စာသားေတြသိမ္းမွာလား စသည္ျဖင့္ေပါ့။

C# မွာ အဓိက data type ၂ မ်ိဳးရွိတယ္ဗ်။ Value Type နဲ႔ Reference Type ဆိုျပီးေခၚတယ္ဗ်ာ။ Value Type ဆိုတာကေတာ့ memory ေပၚက ကြၽန္ေတာ္တို႔ ေၾကျငာထားတဲ႔ ေနရာမွာ value ကိုတိုက္ရိုက္ သိမ္းထားတာဗ်ာ။ Reference Type ဆိုရင္ေတာ့ value ကို မသိမ္းထားပဲ အဲ့ဒီ value ရွိေနတဲ႔ memory address ကိုပဲ ကြၽန္ေတာ္တို႔ရဲ့ variable ထဲမွာ သိမ္းထားတာကို ဆိုလိုတာေပါ့။

နမူနာက ဒီလိုဗ်ာ…

int num = 3;

number value data တခုသိမ္းဖို႔အတြက္ num ဆိုတဲ႔ variable တစ္ခုကို memory ေပၚမွာ ေနရာယူလိုက္ပါတယ္။ ျပီး တခါတည္း အဲ့ဒီ ေနရာမွာ 3 ဆိုတဲ႔ value တစ္ခုကို သိမ္းလုိက္ပါတယ္။ ေၾကျငာထားတဲ႔ ေနရာထဲမွာ value သိမ္းသြားတဲ႔ အတြက္ int ဟာ value type ျဖစ္ပါတယ္။

string st = “abc”;

ဒီလိုပါပဲ abc ဆိုတဲ႔ စာသားကို သိမ္းဖို႔အတြက္ st ဆိုတဲ႔ variable ကို ေၾကျငာလိုက္ပါတယ္။ ဒါေပမယ့္ st ထဲကိုထည့္လိုက္တဲ႔ value ျဖစ္တဲ႔ abc ဟာ st ထဲမွာ မရွိပါဘူး။ memory ရဲ့ တျခားတေနရာမွာ ရွိသြားပါတယ္။ အဲ့ဒီ abc ေရာက္သြားတဲ႔ ေနရာရဲ့ address ကသာလွ်င္ st ထဲကိုေရာက္သြားပါတယ္။ ဒါေၾကာင့္ string ဟာဆိုရင္ျဖင့္ reference type ထဲမွာ ပါ၀င္ပါတယ္။ ရွင္းသြားေအာင္ ပံုေလးကိုၾကည့္ပါ…

ဒါဆိုရင္ value type နဲ႔ reference type ကို ခြဲျပီး နားလည္မယ္ထင္ပါတယ္။ ဟုတ္ျပီ ဒါဆိုရင္ value type မွာ ဘာေတြပါလဲ ဆက္ၾကည့္ရေအာင္။

value type ထဲမွာ integral type ေတြ၊

Type Range Size
sbyte -128 to 127 Signed 8-bit integer
byte 0 to 255 Unsigned 8-bit integer
char U+0000 to U+ffff Unicode 16-bit character
short -32,768 to 32,767 Signed 16-bit integer
ushort 0 to 65,535 Unsigned 16-bit integer
int -2,147,483,648 to 2,147,483,647 Signed 32-bit integer
uint 0 to 4,294,967,295 Unsigned 32-bit integer
long -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 Signed 64-bit integer
ulong 0 to 18,446,744,073,709,551,615 Unsigned 64-bit integer

floating point typeေတြ၊

Type Approximate range Precision
float ±1.5e−45 to ±3.4e38 7 digits
double ±5.0e−324 to ±1.7e308 15-16 digits

decimal type၊

Type Approximate Range Precision
decimal ±1.0 × 10−28 to ±7.9 × 1028 28-29 significant digits

boolean data type၊ enumeration data type နဲ႔ structure data type ေတြပါ၀င္ပါတယ္။

reference type ထဲမွာေတာ့

  • string type၊
  • object type၊
  • array data type၊
  • class data type၊
  • interface နဲ႔
  • delegate type

ေတြပါ၀င္ပါတယ္။

variable declaration အပိုင္းမွာ ကြၽန္ေတာ္တို႔ သိဖို႔လိုတာတခုရွိတယ္ဗ်။ ကြၽန္ေတာ္တို႔ variable name ေတြေၾကျငာတဲ႔ေနရာမွာ C# keywords ေတြနဲ႔ သြားျပီးတူလို႔မရဘူးဗ်။ Keywords ဆိုတာကေတာ့ဗ်ာ compiler က နားလည္ျပီးသား စကားလံုးေတြေပါ့။ သူတို႔ကို reserved words လို႔လဲေခၚေသးတယ္ဗ်။

keywords table

abstract event new struct
as explicit null switch
base extern object this
bool false operator throw
break finally out true
byte fixed override try
case float params typeof
catch for private uint
char foreach protected ulong
checked goto public unchecked
class if readonly unsafe
const implicit ref ushort
continue in return using
decimal int sbyte virtual
default interface sealed volatile
delegate internal short void
do is sizeof while
double lock stackalloc
else long static
enum namespace string

ဒီဇယားထဲက keyword ေတာ္ေတာ္မ်ားမ်ားကို ကြၽန္ေတာ္တို႔ သိျပီးသားျဖစ္မွာပါ။

2 Comments »

  1. အေတာ္ေလးကို ရွင္းလင္းေကာင္းမြန္တဲ့ ပို ့ခ ်ခ်က္ျဖစ္ပါတယ္။ အရမ္းအသံုးဝင္ပါတယ္။ေက်းဇူးတင္ပါတယ္ခင္ဗ်ာ။
    ိဒီဘေလာ့ဂ္ကို အခုလို ေနာက္က်ျပီးမွ ဖတ္မိတာ ေနာင္တရမိပါတယ္။

    Comment by Anonymous — August 19, 2015 @ 9:45 AM

  2. programပိုင္းကိုေလ့လာခ်င္ တယ္ဗ်ာ

    Comment by Ye Min Sein — June 23, 2016 @ 7:53 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: