You are on page 1of 16

C# Programming Fundamentals Course

PART – I
( ျမန္မာ ဘာသာျဖင္႔ ေရးသားထားသည္ )

Author :
Pyae Phyo Maung Maung
B.C ( Tech ) ( Hons : )
MCTS , MCPD .
Web site : http://myanmaraspnet.multiply.com

do while .Unconditional ဆုိသည္မွာ Method နွင္႔ Function AေခၚAေ၀ၚ Method Call သည္ ဆုိသည္မွာ Method Call ပံု Method Call ပံု နွင္႔ return Value Aေၾကာင္း Conditional ဆုိသည္မွာ If Aေၾကာင္း Nested If Aေၾကာင္း Switch Aေၾကာင္း Looping goto Aေၾကာင္း while. for Aေၾကာင္း foreach Aေၾကာင္း 2 .

Method စသည္တုိ႔မွ ေခၚယူ Aသံုးျပဳျခင္း ကုိ ဆုိလုိသည္ ။ ဘာေၾကာင္႔ Method ခြဲေရးသင္႔ပါသလဲ ? Method တစ္ခုထတ ဲ ြင္ Coding မ်ား စုျပံဳေရးထားျခင္းသည္ ရွငး္ လင္းမွု မရွိျခင္း ၊ သေဘာတရား တူညီေသာ Coding မ်ားကုိ ထပ္ခါထပ္ခါ ေရးရျခင္း စေသာ Aခက္Aခဲမ်ားကို ေရွာင္ရွားရန္ Aတြက္ Method ကုိ ခြဲေရး ၾကျခင္း ျဖစ္သည္ ။ Method Call သည္ ဆုိရာ၀ယ္ Method နွစ္မ်ိဴး သာ ရွိသည္ ။ Return ျပန္ေသာ Method နွင္႔ Return မျပန္ေသာ Method တုိ႔ျဖစ္ၾကသည္ ။ ေAာက္တြင္ Return မျပန္ေသာ Method နွင္႔ Return ျပန္ေသာ Method တုိ႔ကုိ ဆက္လက္ ေဖၚျပပါမည္ ။ 3 .Unconditional ဆုိသည္မွာ Unconditional ဆုိသည္မွာ ရုိးရွင္းေသာ Method Call ပံု မ်ိဳးကုိ ဆုိလုိသည္ ။ တနည္းAားျဖင္႔ ထုိ Method ထဲတြင္ မည္သည္႔ Conditional Statement မွ မပါ၀င္ေသာ Method မ်ိဳး ကုိ ဆုိလုိသည္ ။ Method နွင္႔ Function AေခၚAေ၀ၚ AေခၚAေ၀ၚ တကယ္ေတာ႔ Method နွင္႔ Function ဆုိတာ AေခၚAေ၀ၚ ကြာေပမယ္႔ သူတုိ႔Aလုပ္လုပ္ပံု ဟာ Aတူတူပဲ ျဖစ္ပါတယ္ ။ C Programmers မ်ားက Function လုိ႔ေခၚေ၀ၚ သံုးစြဲခ႔တ ဲ ာျဖစ္ျပီး C++ / Java / C# Programmers မ််ားကေတာ႔ Method လုိ႔ ေခၚေ၀ၚ Aသံုးျပဳခဲ႔တာ ျဖစ္ပါတယ္ ။ Method Call Method Call သည္ ဆုိသည္မွာ Program ၏ တစ္ေနရာတြင္ ခြဲေရးထားေသာ Method တစ္ခုကို မိမိေခၚလိုေသာ Event .

Method Call ပံု စတင္Aသံုးျပဳမယ္႔ သူAားလုံးAတြက္ ရည္ရြယ္ျပီး Console Application ကုိ A သံုးျပဳပါမယ္ ။ ၁ . Main ေA ာက္တြင္ ဒီလုိေရးပါ ။ static void FunctionOne() { 4 . ထုိ႔ေနာက္ Templates ထဲမွ Console Application ကုိ ေရြးပါ ။ ၃ .WriteLine("I'm in Main!"). Visual Studio . ၄ . FunctionOne(). Main ထဲတြင္ ဒီနွစ္ေၾကာင္းကုိေရးပါ ။ Console.Net မွ File \ New Project ကုိ ေရြးပါ ။ ၂ .

WriteLine("I'm in functionOne!"). ေရးထားတဲ႔ Program ကုိ SHIFT + CTRL + B နဲ႔ Compile လုပ္ပါမယ္ ။ ၇ .WriteLine("I'm in functionTwo!"). Result က ဒီလုိ ျမင္ရမွာပါ ။ 5 . Program Run ဖုိ႔Aတြက္ CTRL + F5 ကုိ နွိပ္ပါ ။ ၉ . Build succeeded ဆုိတ႔ဲ စာသားေလးကုိ Window ေAာက္ေျခနားမွာ ျမင္ရျပီဆုိရင္ Compile လုပ္တာ ေAာင္ျမင္ပါျပီ ။ ၈ . FunctionTwo().1 ၆ . Aဆင္႔ ၄ Aထိ Programm ေရးျပီးရင္ ဒီလုိ ျမင္ရမွာပါ ။ Fig : Program .Console. } static void FunctionTwo() { Console. } ၅ .

Aခုဆိုရင္ Program ကုိ Trace လုိက္ရန္ Aသင္႔ျဖစ္ပါျပီ ။ 6 . Result ထြက္လာရင္ Programmer တစ္ေယာက္ မျဖစ္မေန လုပ္ရမယ္႔ Aလုပ္တစ္ခု ကို စတင္လုပ္ရပါမယ္ ။ Aဲဒါကေတာ႔ Trace လိုက္ရမွာပါ ။ ၁၁ .WriteLine ( “I’m in Main ! “).Fig : Program – 1 ( Result ) ၁၀ . Main ထဲမွာ ရွိတ႔ဲ Console. Programm ကုိ Run ဖုိ႔Aတြက္ F5 ကို ျပန္နွိပ္ပါ ။ ( CTRL + F5 ကုိ နွိပ္ရင္ Trace လုိက္ေပးမွာ မဟုတ္ပဲ Program ဟာ တန္းျပီး Aလုပ္လုပ္သာြ းမွာပါ ) ၁၃ . ဆုိတ႔ဲ ေနရာကို F9 နွိပ္ပါ ။ ( Break Point ေထာက္တယ္လုိ႔ ေခၚပါတယ္ ။ ) Fig : Program_Trace ၁၂ .

F11 ကို Aသံုးျပဳျပီး Trace တစ္ေၾကာင္းျခင္း လုိက္လုိ႔ရပါျပီ ။ 7 .Fig : Program_1_Trace_With_F11 ၁၄ .

namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console. FunctionOne( ) ရဲ႔ Coding ကုိ Aနည္းငယ္ေျပာင္းလဲထားျပီး FunctionTwo( ) ေနရာမွာ int ကုိ return ျပန္ေပးမယ္႔ Doubler(int originalValue) ကုိ ေရးပါမယ္ ။ using System. int x = 5. } } } ရွင္းလင္းခ်က္ ။ ။ y = Doubler(x). x.Text.WriteLine("x was {0} and y is {1}". FunctionOne().WriteLine("I'm in functionOne!"). using System.Generic. y = Doubler(x). return doublevalue.WriteLine("I'm in Main!"). int y. using System. y). } static int Doubler(int originalValue) { int doublevalue = originalValue * 2. ဆုိတ႔ဲ AေျခAေနမွာ x ရ႔ဲ တန္ဖုိးဟာ Aေပၚမွာ ထည္႔ထားတဲ႔ 5 ပါ ။ Aဲဒီေနာက္ static int Doubler(int originalValue) 8 .Collections. } static void FunctionOne() { Console.Method Call ပံု နွင္႔ return Value Aေၾကာင္း ဒီ တစ္ခါ Method Call ပံု ႏွင္႔ Return Value Aေၾကာင္းကုိ ေျပာပါမယ္ ။ Aေပၚမွာ ေရးခဲ႔တ႔ဲ Coding ကုိ ပဲ ျပင္ေရးမွာပါ ။ ၁ . Console.

} ကုိ သြားေခၚလုိက္တ႔ဲ Aခါ originalValue ထဲကုိ x ရဲ႔ တန္ဖုိး 5 ေရာက္သာြ းပါတယ္ ။ Doubler Function ဟာ ၀င္လာတဲ႔ တန္ဖုိး (originalValue)ကုိ ၂ ဆ ေျမာက္လုိက္ျပီး doublevalue ထဲသို႔ ထည္႔လုိက္ပါတယ္ ။ ထုိ႔ေနာက္ return ကုိ Aသံုးျပဳျပီး ရလာတဲ႔ int တန္ဖုိး 10 ကုိ y ထဲသုိ႔ ေရာက္ေစပါတယ္ ။ Result Screen ကေတာ႔ ဒီလုိပါ ။ 9 . return doublevalue.{ int doublevalue = originalValue * 2.

else Console. } Nested If if( temperature > freezingPoint ) { if ( temperature < boilingPoint ) 10 . နွစ္မ်ိဴးသာ ျဖစ္နုိင္ေသာ Aေၾကာင္းAရာမ်ားကုိ စစ္လုိေသာ Aခါ If else ကုိ သံုးသည္ ။ if ( myAge > 40 ) Console.WriteLine(“Kyat”).WriteLine(“Youth abounds!”). if(Money == “Dollar”) { Console. } else { Console.WriteLine(“You are over 40”). တစ္ခုထက္ပုိ ျဖစ္ပ်က္ေသာ Aေၾကာင္းAရာမ်ားကုိ စစ္လုိေသာ Aခါ If .else if .Conditional ဆုိသည္မွာ Conditional ဆုိသည္မွာ လက္ေတြ႔တြင္ ျဖစ္ပ်က္ေနေသာ Aေၾကာင္းAရာမ်ားကုိ Aနီးစပ္ဆံုး တူညီေAာင္ ေဖၚျပရန္Aတြက္ Aသံုးျပဳရျခင္း ျဖစ္သည္ ။ Conditional မပါေသာ Program ဆုိသည္ မွာ မရွိေလာက္ေAာင္ ရွားပါသည္ ။ IF Aေၾကာင္း Uပမာ ။ ။ မုိးရြာလွ်င္ ထီးေဆာင္းမည္ ။ Condition တစ္ခု ကုိသာ စစ္လုိေသာ Aခါ If ကုိ Aသံုးျပဳသည္ ။ if (isRaining) OpenUmbrella().WriteLine(“Dollar”). } else if(Money == “Yum” ) { Console.else ကုိ သံုးနုိင္သလုိ Nested If ကုိ လည္း Aသံုးျပဳနုိင္သည္ ။ If else if else.WriteLine(“Yum”).

Write("(1) Walk (2) Run (3) Crawl (4) Falling [1.WriteLine("Crawling. namespace ConsoleApplication1 { class Program { static void Main() { Console.2.ToInt32(choice). using System."). break..")."). using System. ဆုိတ႔ဲ ေနရာကုိ သတိျပဳမိမွာပါ ။ Run Box မွာ 2 လုိ႔ ရုိက္ထည္႔လုိက္ပါ ။ Aဲဒါဆုိရင္ goto Aလုပ္လုပ္သာြ းပံု ကုိ Aလြယ္တကူ နားလည္နုိင္မွာပါ ။ 11 .ReadLine()."). goto case 4. int menuChoice = Convert. break.Generic...4]: "). } else ConsoleWriteLine(“Water is solid”). switch (menuChoice) { case 1: Console.WriteLine("Running. case 2:Console.WriteLine("Walking.....Console. } } } } မွတ္ခ်က္ ။ ။ Program ကုိ Run တဲ႔ Aခါ CTRL+F5 ကုိ နွိပ္မွ Result ကုိ ျမင္ရမွာပါ ။ goto case 4.WriteLine("Falling. case 3: Console. case 4: Console.3.. else Console.Text.WriteLine(“Water is gaseous”). Switch Aေၾကာင္း using System. string choice = Console.WriteLine(“Water is liquid”). break.Collections.

ဆုိျပီး ပါလာပါတယ္ ။ Result Screen Fig : Switch LOOPING Aေၾကာင္ Aေၾကာင္း C# မွာ Supports လုပ္တ႔ဲ Looping Instructions မ်ားကေတာ႔ 12 .goto Aသံုးျပဳရျခင္း ရည္ရယ ြ ္ခ်က္ကေတာ႔ သူန႔ဲ သက္ဆုိင္တ႔ဲ Aေၾကာင္းAရာ တစ္ခုကို ပူးတြဲ ျပခ်င္တ႔ဲ Aခါမ်ိဳးမွာ သံုးေလ႔ ရွိပါတယ္ ။ ေAာက္က Result Screen မွာ 2 လို႔ ရုိက္ထည္႔လုိက္တ႔ဲ Aခါ Running … Falling….

• goto • while • do…while • for • foreach goto Aေၾကာင္း goto ဟာ if နဲ႔ လည္း တြဲဖက္ Aသံုးျပဳလုိ႔ ရပါတယ္ ။ 13 .

using System. namespace ConsoleApplication1 { class Program { static void Main() { // goto Console. } } } Result Screen Fig : goto while . i++. do. i).. for Aေၾကာင္း using System. while .Generic. 14 .Write("{0} "."). int i = 0..using System. repeat: Console...Text. if (i < 10) goto repeat. using System.WriteLine("goto.Collections. do.

using System. // for Console.Write("{0} ". i). while (i < 10) { Console. i++) { Console.. i++.Text.Collections. } while (i < 10).while Console. i). i).. int i = 0.WriteLine("While.Write("{0} ". for (i = 0. using System.Write("{0} ".WriteLine("\n\nDo While.").. } } } } Result Screen 15 . i < 10. i = 0..").Generic.")... namespace ConsoleApplication1 { class Program { static void Main() { // while Console. i++. } // do. do { Console...WriteLine("\n\nFor.

Fig : While_DoWhile_For foreach Aေၾကာင္း END 16 .