1. C#ãšã¯äœã
C#ïŒã·ãŒã·ã£ãŒãïŒã¯ããã€ã¯ããœããã2000幎ã«éçºããããã°ã©ãã³ã°èšèªã§ãJavaãC++ãªã©ãã圱é¿ãåããèšèªãšããŠåºãç¥ãããŠããŸããC#ã¯.NET Frameworkäžã§åäœããããšãå€ããWindowsã¢ããªã±ãŒã·ã§ã³ã®éçºã«åºãå©çšãããŠããŸãããã®ä»ã«ããWebã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãã²ãŒã éçºã«ãå©çšãããéåžžã«å€çšéãªèšèªã§ãã
1.1 C#ã®ç¹åŸŽ
C#ã®æãé¡èãªç¹åŸŽã¯ãã®åŒ·åãªåã·ã¹ãã ãšãã·ã³ãã«ã§ãããªããè¡šçŸåã®ããææ³ã§ããããã¯éçºè ãããå®å šã§ãä¿å®æ§ã®é«ãã³ãŒããæžãã®ãå©ããŸãããŸããC#ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ããã«ã«ãµããŒãããŠããŸããããã¯ã³ãŒãã®åå©çšãšæ°ããã³ãŒãã®è¿œå ã容æã«ããŠããŸãã
1.2 C#ã®çšé
C#ã¯éåžžã«åºãç¯å²ã®çšéã«äœ¿çšãããŠããŸããæãäžè¬çãªçšéã¯Windowsãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã§ãããASP.NETã䜿çšããWebã¢ããªã±ãŒã·ã§ã³éçºããXamarinã䜿çšããiOSãAndroidã®ã¢ãã€ã«ã¢ããªãããã«ã¯Unityãšã³ãžã³ã§ã®ã²ãŒã éçºãªã©ã«ãå©çšãããŠããŸãããŸãã.NET Coreã®ç»å Žã«ãããC#ã䜿çšããã¯ãã¹ãã©ãããã©ãŒã éçºãå¯èœãšãªããŸããã
1.3 C#ãšä»ã®ããã°ã©ãã³ã°èšèªãšã®æ¯èŒ
C#ã¯ãJavaãC++ãPythonãªã©ã®ä»èšèªãšæ¯ã¹ãŠã©ãã§ãããããJavaãšC#ã¯äŒŒãŠããç¹ãå€ããææ³ããªããžã§ã¯ãæåã®æŠå¿µãªã©ã§é¡äŒŒæ§ãèŠãããšãã§ããŸããããããC#ã«ã¯Javaã«ã¯ãªããããããã£ãã€ã³ãã¯ãµãããªã²ãŒããªã©ã®ç¬èªã®æ©èœããããŸãã
ãŸããC++ãšæ¯èŒãããšãC#ã¯æ軜ã«å®å šãªã³ãŒããæžãããšãã§ããäžæ¹ã§ãC++ã®ããã«äœã¬ãã«ãªã·ã¹ãã ã«çŽæ¥ã¢ã¯ã»ã¹ããããšã¯é£ãããªã£ãŠããŸãã
Pythonãšæ¯ã¹ãŠããPythonãçãèªã¿ãããã³ãŒããç®æãã®ã«å¯ŸããC#ã¯ããå ç¢ã§çé¢ç®ã«åä»ããããèšèªã§ãããšèšããã§ããããããããC#ã®åŠç¿æ²ç·ã¯Pythonãããããæ¥ãªå Žé¢ããããŸãã
ãããã®æ¯èŒãéããŠãC#ã«ã¯ç¬ç¹ã®åŒ·ã¿ãšç¹æ§ãããããšãããããŸãããããŠããã®å€æ©èœããšåŒ·åãªåã·ã¹ãã ã¯ã倧èŠæš¡ãªãããžã§ã¯ãã§ãå®å šãã€é«å質ãªã³ãŒããå¹ççã«æžãã®ã«åœ¹ç«ã¡ãŸãã
2. C#ã®åºæ¬æ©èœ
ããã§ã¯ãC#ã®æ žãšãªãåºæ¬æ©èœã«ã€ããŠè§£èª¬ããŸãããããã®åºæ¬æŠå¿µãç解ããããšã¯ãããã°ã©ãã³ã°èšèªãåŠã¶äžã§éåžžã«éèŠã§ããC#ã«ã¯å€æ°ãšããŒã¿åãæŒç®åãšèšç®ãæ¡ä»¶æãšã«ãŒããé¢æ°ãšã¡ãœãããªã©ã®åºæ¬çãªæ©èœãååšããŸãã
2.1 å€æ°ãšããŒã¿å
ãŸãã¯ããã«ãå€æ°ãšããŒã¿åã«ã€ããŠåŠã³ãŸããããå€æ°ãšã¯ãããã°ã©ã å ã§ããŒã¿ãäžæçã«ä¿åããããã®ãã®ãæããŸãããŸããC#ã§ã¯å€æ°ã«ä¿åããããŒã¿ã®çš®é¡ã«å¿ããŠãç¹å®ã®ããŒã¿åãæå®ããŸããããŒã¿åã«ã¯æŽæ°ãæ±ãintãå°æ°ç¹ãå«ãæ°å€ãæ±ãdoubleãæååãæ±ãstringãªã©ããããŸãã
2.2 æŒç®åãšèšç®
次ã«ãæŒç®åãšèšç®ã«ã€ããŠåŠã³ãŸããC#ã§ã¯å€æ°ãçšããç®è¡æŒç®ïŒè¶³ãç®ãåŒãç®ãæãç®ãå²ãç®ãªã©ïŒãè¡ãããšãå¯èœã§ãããããã¯äžè¬çãªç®è¡æŒç®åïŒ+, -, *, /ïŒã䜿çšããŸãããŸããC#ã«ã¯å€æ°ã®å€ãå¢æžãããã€ã³ã¯ãªã¡ã³ãïŒ++ïŒãšãã¯ãªã¡ã³ãïŒãšãã£ãç¹æ®ãªæŒç®åãæäŸãããŠããŸãã
2.3 æ¡ä»¶æãšã«ãŒã
æ¡ä»¶æãšã«ãŒããC#ã®åºæ¬çãªæ©èœã®äžéšã§ããæ¡ä»¶æã®ifãšelseã䜿çšããã°ããããæ¡ä»¶ãæºããæã ãç¹å®ã®åŠçãè¡ãããšããããã°ã©ã ãæžãããšãã§ããŸããã«ãŒãæã®whileãforãçšãããšããç¹å®ã®æ¡ä»¶ãæãç«ã€éããããã¯ç¹å®ã®åæ°ã ãç¹°ãè¿ãåŠçãè¡ãããšãã£ãããã°ã©ã ãäœæããããšãå¯èœã§ãã
2.4 é¢æ°ãšã¡ãœãã
æåŸã«ãé¢æ°ãšã¡ãœããã«ã€ããŠèª¬æããŸããé¢æ°ãã¡ãœããã¯ç¹å®ã®åŠçãã²ãšãŸãšãŸãã«ãããã®ã§ããããçšããããšã§ã³ãŒãã®åå©çšæ§ãé«ãŸããŸããäžè¬ã«é¢æ°ã¯ç¬ç«ããŠååšããã¡ãœããã¯ã¯ã©ã¹å ã«ååšããŸãããããã¯åŒæ°ãåããå¿ èŠã«å¿ããŠæ»ãå€ãè¿ãããšãå¯èœã§ãã
3. C#éçºç°å¢ã®ã»ããã¢ãã
ããã°ã©ãã³ã°èšèªãåŠã¶ããã«ã¯ããã£ãããšéçºç°å¢ãæºåããããšã倧åã§ããC#ã«ãããããã®éçºç°å¢ãååšããŸãããä»åã¯ãã®äžã§ãæã人æ°ãªéçºç°å¢ã®äžã€ã§ãããVisual Studioãã®ã€ã³ã¹ããŒã«ãšèšå®æ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
3.1 éçºããŒã«ã®ã€ã³ã¹ããŒã«
ãŸãæåã«ãC#ã®éçºã«å¿ èŠãªããŒã«ãVisual StudioããæºåããŸããããVisual Studioã¯ãMicrosoft瀟ãæäŸããçµ±åéçºç°å¢ïŒIDEïŒã§ãC#ã ãã§ãªãæ§ã ãªèšèªã®ããã°ã©ãã³ã°ã«äœ¿çšã§ããŸããå€æ©èœæ§ã䜿ãããããããäžçäžã®å€ãã®éçºè ã«éžã°ããŠããããŒã«ã§ãã
Visual Studioã¯ãMicrosoftå ¬åŒãµã€ãããç¡æã§ããŠã³ããŒãããããšãã§ããŸããããŠã³ããŒãããã€ã³ã¹ããŒã©ãèµ·åããç»é¢ã®æ瀺ã«åŸã£ãŠã€ã³ã¹ããŒã«ããŠãããŸãã
ã€ã³ã¹ããŒã©ãèµ·åããããã.NET desktop developmentããéžæããå¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸããããã«ãããC#ã§ã®éçºã«å¿ èŠãªæäœéã®ããŒã«ãäžã€ã«ãŸãšãŸã£ãŠã€ã³ã¹ããŒã«ãããŸãã
3.2 éçºç°å¢ã®èšå®
次ã«ãVisual Studioã®åæèšå®ãèŠãŠãããŸããããVisual Studioãèµ·åãããšãæåã«ãéçºã®ããã®ç°å¢èšå®ããèãããŸããããã§ã¯ãC#ããŸãã¯ãäžè¬ããéžæããã°åé¡ãããŸããã
èšå®ãçµãã£ãããæ°ãããããžã§ã¯ããäœæããŠã¿ãŸãããããã¡ã€ã«ã¡ãã¥ãŒãããæ°ãããããžã§ã¯ãããéžæãããããžã§ã¯ãã®çš®é¡ãæå®ããŸããåããŠã®ãããžã§ã¯ããšããŠããConsole ApplicationããéžæããŸãããã
æåŸã«ãããžã§ã¯ãåãä»ããèšå®ãå®äºããã°ãC#ã®éçºç°å¢ãæŽããŸãããããã§ããªããC#ã®äžçã«é£ã³èŸŒãæºåãæŽããŸããã
4. C#ã«ããåºæ¬çãªã³ãŒãã£ã³ã°
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãããã°ã©ã ã®åºæ¬çãªçµã¿ç«ãŠæ¹ãããC#ã®äžçãæ¢æ±ããåæ©çãªã¹ããããåŠãã§ãããŸãããã
4.1 æåã®C#ããã°ã©ã ïŒHello World
倧æµã®ããã°ã©ãã³ã°åŠç¿ã§ã¯äŒçµ±çã«ãHello Worldããšããç°¡åãªããã°ã©ã ããå§ããŸãã以äžã¯ãC#ã§ã®ãHello Worldãããã°ã©ã ã®äžäŸã§ãã
class Program { static void Main() { System.Console.WriteLine("Hello World"); } }
ãProgramããšããååã®ã¯ã©ã¹ãå®çŸ©ãããããå«ããMainãã¡ãœãããã³ã³ãœãŒã«ã«ãHello Worldããšè¡šç€ºããŸããããã§ãMainãã¡ãœããã¯ãC#ããã°ã©ã ã®ãšã³ããªãŒãã€ã³ãïŒéå§ç¹ïŒã§ããããšãèŠããŠãããŸãããã
4.2 å€æ°ã®äœ¿çšãšèšç®
C#ã«ãããå€æ°ã®æ±ããç解ããããã«ãæ°å€ã®å ç®ãè¡ãã·ã³ãã«ãªããã°ã©ã ã芳å¯ããŠã¿ãŸãããã
class Program { static void Main() { int a = 5; int b = 10; int sum = a + b; System.Console.WriteLine(sum); } }
ãã®ã³ãŒãã§ã¯ããaãããbãããsumããšãã3ã€ã®å€æ°ã宣èšããããããã«å€ãä»£å ¥ããŠããŸãããããŠããsumãã®å€ãã³ã³ãœãŒã«ã«è¡šç€ºããŸãã
4.3 æ¡ä»¶åŠçãšã«ãŒãåŠçã®å®è£
æ¡ä»¶åŠçãšã«ãŒãåŠçã¯ããã°ã©ã ã®å¶åŸ¡ãããŒãæäœããéèŠãªèŠçŽ ã§ãã以äžã«ãC#ã§ã®ãif-elseæããšãforã«ãŒããã®ç°¡åãªäŸã瀺ããŸãã
class Program { static void Main() { int number = 7; if (number % 2 == 0) { System.Console.WriteLine("Even"); } else { System.Console.WriteLine("Odd"); } for (int i = 0; i < 5; i++) { System.Console.WriteLine(i); } } }
ãif-elseæãã¯æ¡ä»¶ã«å¿ããŠéãåäœãããããã«äœ¿çšããŸãããforã«ãŒããã¯ç¹å®ã®æ¡ä»¶ãæºãããããŸã§åãåŠçãç¹°ãè¿ãããã«äœ¿çšããŸãã
4.4 ã¡ãœããã®äœæãšåŒã³åºã
C#ã§ã¯ãç¹å®ã®ã¿ã¹ã¯ãå®è¡ããäžé£ã®ã³ãŒãããã¡ãœããããšããŠå®çŸ©ããŸããã¡ãœããã¯ã³ãŒãã®åå©çšãé »ç¹ã«å¯èœã«ããããã°ã©ã ãæŽçæŽé ããããããŸãã
class Program { static void Main() { SayHello("John"); SayHello("Jane"); } static void SayHello(string name) { System.Console.WriteLine("Hello, " + name); } }
ããã§ã¯ãSayHelloãã¡ãœãããå®çŸ©ããããã«ååãæž¡ããŠåŒã³åºããŠããŸãããã®çµæãããããã®ååã«å¯ŸããŠãèŸåãããŸãã
5. C#ã«ãããªããžã§ã¯ãæåããã°ã©ãã³ã°
æåã«æŠå¿µãç解ããããšããå§ããŸãããããªããžã§ã¯ãæåããã°ã©ãã³ã°ïŒOOPïŒã¯ãããã°ã©ã ããªããžã§ã¯ããšããåäœã§èãããã©ãã€ã ã§ããããã§ã¯C#ã«ããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºæ¬çãªæŠå¿µãç°¡åã«è§£èª¬ããŸãã
5.1 ã¯ã©ã¹ãšãªããžã§ã¯ã
ãŸãããªããžã§ã¯ãæåã®æ žå¿ãšãªãã¯ã©ã¹ãšãªããžã§ã¯ãã«ã€ããŠç解ããŸããããC#ã§ã¯ãã¯ã©ã¹ã¯ãªããžã§ã¯ããçæããããã®èšèšå³ãšãªããŸãããã®ãèšèšå³ããããã°ãåãç¹æ§ã»æ©èœãæã£ããªããžã§ã¯ããäœåãäœãåºãããšãã§ããŸãã
public class Dog { //ãããã㣠public string Name { get; set; } //ã¡ãœãã public void Bark() { Console.WriteLine("Woof!"); } }
äžèšã®ã³ãŒãã¯ãDogããšããã¯ã©ã¹ãå®çŸ©ããŠããŸãããã®ã¯ã©ã¹ãå©çšããŠãå ·äœçãªãDogãªããžã§ã¯ãããçæããããšãã§ããŸãããSpotããšããååã®ç¬ãå ããã€ã¡ãŒãžã§ãã
5.2 ç¶æ¿ãšããªã¢ãŒãã£ãºã
次ã«ãç¶æ¿ãšããªã¢ãŒãã£ãºã ã«ã€ããŠèª¬æããŸããç¶æ¿ãšã¯ãããã¯ã©ã¹ãä»ã®ã¯ã©ã¹ã®ç¹æ§ãæ©èœãåŒãç¶ãããšã§ããå ·äœçã«ã¯ããDogãã¯ã©ã¹ããAnimalãã¯ã©ã¹ããç¹æ§ãæ©èœãåŒãç¶ãã§ãããšããç¶æ ãæããŸãã
public class Animal { public string Name { get; set; } public void Eat() { Console.WriteLine("Yummy!"); } } public class Dog : Animal { public void Bark() { Console.WriteLine("Woof!"); } }
ããã§ã¯ãDogãã¯ã©ã¹ããAnimalãã¯ã©ã¹ãç¶æ¿ããååãšããããããã£ãšé£ã¹ããšããè¡åãåŒãç¶ãã§ããŸããå ããŠãå ãããšããæ°ããªè¡åãå ããŠããŸãã
ããªã¢ãŒãã£ãºã ãšã¯ããªããžã§ã¯ããè€æ°ã®åãæã€èœåã®ããšã§ãããã«ãããªããžã§ã¯ãã®æ±ããæè»ãšãªããŸãããªãŒããŒã©ã€ãïŒæ¢åã¡ãœããã®æ¯ãèããåå®çŸ©ããïŒãšãªãŒããŒããŒãïŒåãååã§ç°ãªãæ©èœãæã€è€æ°ã®ã¡ãœãããå®çŸ©ããïŒã¯ãã®äžäŸã§ãã
5.3 ã€ã³ã¿ãŒãã§ãŒã¹ãšæœè±¡ã¯ã©ã¹
æåŸã«ãã€ã³ã¿ãŒãã§ãŒã¹ãšæœè±¡ã¯ã©ã¹ã«ã€ããŠèª¬æããŸãããããã¯ã¯ã©ã¹éã®é¢ä¿ãèšèšããã®ã«éèŠãªããŒã«ã§ãã
ã€ã³ã¿ãŒãã§ãŒã¹ã¯ããã¯ã©ã¹ãå¿ ãæã€ã¹ãæ©èœãå®çŸ©ããŸãããå ·äœçãªå®è£ æ¹æ³ã¯å®çŸ©ããŸãããããã«ããæ©èœãä¿èšŒããã€ã€ãå®è£ ã®èªç±åºŠãä¿ãããŸããããã«å¯ŸããŠãæœè±¡ã¯ã©ã¹ã¯äžéšãŸãã¯å šéšã®ã¡ãœãããå ·äœçãªå®è£ ãæããªãã¯ã©ã¹ã®ããšã§ããã®ã¯ã©ã¹ãç¶æ¿ãããµãã¯ã©ã¹ããããæªå®æã®ã¡ãœããã®å®è£ ãæäŸããªããŠã¯ãªããŸããã
ãããã®æŠå¿µãç解ããé©åã«äœ¿ãããªãããšã§ããã£ãããšããèšèšãæã€ããã°ã©ã ãäœæããããšãã§ããŸãããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ç解ã¯ããã°ã©ãã³ã°åãæŽã«åŒãäžããã«ã®ãšãªãã§ãããã
6. C#ã§ã®ããŒã¿ç®¡ç
ããŒã¿ç®¡çã¯ã©ã®ããã°ã©ãã³ã°èšèªã«ãããŠãæ¬ ãããªãã¹ãã«ã§ããç¹ã«C#ã§ã¯ãé«åºŠãªããŒã¿ç®¡çãã¯ããã¯ãç¿åŸããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããå®å šã«å€§éã®ããŒã¿ãåŠçããããšãå¯èœãšãªããŸãã
6.1 é åãšã³ã¬ã¯ã·ã§ã³
C#ã§ã¯ãè€æ°ã®ããŒã¿ãäžåºŠã«ç®¡çããããã®ãé åãšã³ã¬ã¯ã·ã§ã³ãæäŸãããŠããŸããé åã¯åãåã®ããŒã¿ãé£ç¶ããã¡ã¢ãªé åã«ä¿åããŸããäŸãã°ãåŠçã®è©Šéšã®ã¹ã³ã¢ãªã¹ãããã²ãŒã ã®ãã€ã¹ã³ã¢ãªã¹ããªã©ãäžé£ã®åãåã®é ç®ã管çãããšãã«ãã䜿ãããŸãã
äžæ¹ãã³ã¬ã¯ã·ã§ã³ã¯ããŸããŸãªåã®ããŒã¿ãäžåºŠã«ä¿æããããšãå¯èœã§ããã³ã¬ã¯ã·ã§ã³ã¯ListãDictionaryãQueueãStack ãªã©ãããŸããŸãªåœ¢ã§æäŸãããŠããŸãããããã®ã³ã¬ã¯ã·ã§ã³ã¯ãããããããŒã¿ã®ç®¡çãšæäœã®ããã®ç¹å®ã®ã¡ãœãããšããããã£ãæäŸããŸãã
6.2 ãã¡ã€ã«æäœ
ãã¡ã€ã«æäœããC#ã®åŒ·åãªããŒã¿ç®¡çæ©èœã®äžã€ã§ããããã¹ããã¡ã€ã«ããã€ããªãã¡ã€ã«ãèªã¿æžãããããã®æ©èœãçµã¿èŸŒãŸããŠããŸãã StreamReaderãšStreamWriterã¯ã©ã¹ã䜿ãã°ãããã¹ããã¡ã€ã«ã®èªã¿æžããå¯èœã§ãFileStreamãšBinaryReaderãBinaryWriterã¯ã©ã¹ã䜿ãã°ããã€ããªãã¡ã€ã«ã®èªã¿æžããå¯èœã§ãã
ããã«ãC#ã§ã¯ããã¡ã€ã«ããã£ã¬ã¯ããªã®äœæãåé€ã移åãååå€æŽãæ€çŽ¢ãªã©ãå€æ§ãªãã¡ã€ã«ã·ã¹ãã æäœãå¯èœã§ãããããã®æäœã¯System.IOåå空éå ã®FileãšDirectoryã¯ã©ã¹ã䜿ã£ãŠè¡ããŸãã
6.3 ããŒã¿ããŒã¹æ¥ç¶ãšæäœ
C#ã¯ãããŒã¿ããŒã¹ãšã®é£æºã«ãåªããŠããŸããADO.NETãšãããã¯ãããžãŒã䜿ããšãSQL Serverãªã©ã®åçš®ããŒã¿ããŒã¹ã«æ¥ç¶ããSQLã¯ãšãªãå®è¡ããããšãã§ããŸãããã®çµæåŸãããããŒã¿ããC#ã®ã¢ããªã±ãŒã·ã§ã³å ã§æäœããããšãå¯èœã§ãã
ãŸããEntity FrameworkãšããORMïŒObject Relational MappingïŒãã¬ãŒã ã¯ãŒã¯ã䜿ãã°ãããŒã¿ããŒã¹ã®ããŒãã«ãC#ã®ã¯ã©ã¹ãšããŠæ±ãããšãã§ããŸããããã«ãããSQLã¯ãšãªãçŽæ¥æžãããšãªããC#ã®ã³ãŒãã ãã§ããŒã¿ããŒã¹æäœãå¯èœã«ãªããŸãã
7. C#ã䜿ã£ãã¢ããªã±ãŒã·ã§ã³éçº
ããã°ã©ãã³ã°ã®åŠç¿ã«ãããŠéèŠãªèŠçŽ ã®äžã€ã¯ãå®éã®ã¢ããªã±ãŒã·ã§ã³ãéçºããªããåŠã¹ãããšã§ããããã§ã¯ãC#ã䜿ã£ãConsoleã¢ããªã±ãŒã·ã§ã³ãWindowsãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã€ããŠè©³ããèŠãŠãããŸãããã
7.1 Consoleã¢ããªã±ãŒã·ã§ã³
Consoleã¢ããªã±ãŒã·ã§ã³ã¯äžçªåºæ¬çãªC#ã¢ããªã±ãŒã·ã§ã³ã§ãããã¹ãããŒã¹ã®å ¥åºåã䜿çšããŸããå®åã§ã¯ããã¯ã°ã©ãŠã³ãåŠçãè¡ãããŒã«ããã³ãã³ãã©ã€ã³ããŒã«ãäœæããéã«ãã䜿ãããŸããå°ãªãã³ãŒãã§åŠçã®åäœã確èªãããå Žåããç°¡æçãªæ©èœãè©Šãéã«ãæçšã§ãã
7.2 Windowsãã©ãŒã ã¢ããªã±ãŒã·ã§ã³
Windowsãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã¯ãWindows OSäžã§åäœããGUIã¢ããªã±ãŒã·ã§ã³ãéçºããŸãããŠãŒã¶ãçŽæçã«æäœã§ããç»é¢ãæã€ã¢ããªã±ãŒã·ã§ã³ãéçºããéã«äœ¿ãããŸããC#ã§ã¯ãWindowsãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã®éçºãéåžžã«å®¹æã§ããããã¿ã³ãããã¹ãããã¯ã¹ãªã©ã®ãŠã£ãžã§ããããã©ãã°ïŒããããã§é 眮ããã ãã§ãã€ãã³ãé§ååã®GUIã¢ããªã±ãŒã·ã§ã³ãçæéã§äœæããããšãå¯èœã§ãã
7.3 Webã¢ããªã±ãŒã·ã§ã³
C#ã§ã®Webã¢ããªã±ãŒã·ã§ã³éçºã¯ãASP.NETãšãããã¬ãŒã ã¯ãŒã¯ãå©çšããŸããããã«ããããã©ãŠã¶çµç±ã§å©çšã§ããã¢ããªã±ãŒã·ã§ã³ãéçºããããšãã§ããŸããWebã¢ããªã±ãŒã·ã§ã³ã§ã¯ãè€æ°ã®ãŠãŒã¶ãåæã«åããµãŒãã¹ãå©çšã§ãããŸãããããã®ãŠãŒã¶ã®ãã©ãŠã¶ããã¢ã¯ã»ã¹ããããšã§ããªã¢ãŒãããã§ãã¢ã¯ã»ã¹å¯èœãšãªããŸãããã©ãŠã¶ããŒã¹ã®ãŠãŒã¶ã€ã³ã¿ãŒãã§ãŒã¹ãæã€ã¢ããªã±ãŒã·ã§ã³éçºã«æé©ã§ãC#ã«ããWebéçºã¯é«è©äŸ¡ãåŸãŠããŸãã
8. C#ã®åŠç¿ãªãœãŒã¹
èªå·±åŠç¿ãåºæ¬ãšãªãèªåŠåŠç¿ã«ã¯ãé©åãªãªãœãŒã¹ãäžå¯æ¬ ã§ããC#ã«é¢ããŠãåæ§ã§ãæ å ±ãåŸãããã®è¯è³ªãªåèæžããªã³ã©ã€ã³ãªãœãŒã¹ããŸãåŠç¿è ãšæ å ±ãå ±æã§ããã³ãã¥ããã£ã¯ããªãã®åŠç¿äœéšããã䟡å€ãããã®ã«ããŸãã
8.1 ãå§ãã®åèæž
C#ã®åèæžã¯éåžžã«å€ãããããããç°ãªã芳ç¹ããèšèªãæ±ã£ãŠããŸããã§ã¯ãã©ã®ãããªåèæžãéžãã ãè¯ãã®ã§ããããã以äžã«ããã€ãã®ãããããæããŠãããŸãã
ãŸããæŠå¿µããç解ãæ·±ããã人ã«ã¯“C# ããã°ã©ãã³ã°ã®æç§æž”ãããããã§ããåºæ¬çãªããã°ã©ãã³ã°ã®ç¥èãããC#ã®è©³çŽ°ãªä»æ§ãŸã§å¹ åºãã«ããŒããŠããŸãã
次ã«ãå ·äœçãªåé¡ã解決ããããã®ãã³ãããã¯ããã¯ãåŸããæ¹ã«ã¯ã“Effective C#: 50 Specific Ways to Improve Your C#”ãããããã§ããå¹ççãªC#ã®æžãæ¹ãæ·±æãããŠãããå®è·µçãªèŠ³ç¹ããåŠã¶ããšãå¯èœã§ãã
8.2 ããããã®ãªã³ã©ã€ã³ãªãœãŒã¹
äžæ¹ã§ãC#ã®åŠç¿ã«ã¯ãªã³ã©ã€ã³ãªãœãŒã¹ã倧ãã«åœ¹ç«ã¡ãŸããç¹ã«ãåçãªã³ã³ãã³ããæ±ã£ãããææ°ã®æ å ±ã«çŽ æ©ãã¢ã¯ã»ã¹ã§ããç¹ã§ã¯æžç±ã«ã¯ãªãå©ç¹ãæã£ãŠããŸãã
ãŸãã¯ãå ¬åŒã®“Microsoft C# Documentation”ã玹ä»ããŸããC#ã®éçºå ã§ããMicrosoftãæäŸããŠãããããä¿¡é ŒåºŠãé«ããã©ããªã«å°ããªå€æŽãè¿ éã«åæ ããŠããŸãã
ãŸãããããªã®åœ¢åŒã§åŠã³ããæ¹ã«ã¯“Pluralsight”ãããããã§ããC#ã®ãã®ããŒããäžçŽè ãŸã§ãèªåã®ã¬ãã«ã«åãããå 容ã®ã³ãŒã¹ãéžã¹ãŸãã
8.3 ã³ãã¥ããã£ãšãã©ãŒã©ã
æåŸã«ãä»ã®åŠç¿è ãéçºè ãšæ å ±ãå ±æã§ããã³ãã¥ããã£ããã©ãŒã©ã ã®åå ãããããããŸããèªåã ãã§ã¯è§£æ±ºã§ããªãåé¡ã質åããããä»äººã®è³ªåããæ°ããªç¥èãåŸãããšãã§ããŸãã
æãããã¥ã©ãŒãªã®ã¯“Stack Overflow”ã§ãããã¯äžçäžã®ããã°ã©ããŒãå©çšãããã©ãŒã©ã ã§ãC#ã«é¢ããæ§ã ãªãããã¯ãæ±ãããŠããŸãã
ãŸããç¹å®ã®ããŒãã«æ·±ãæãäžãããæ¹ã«ã¯“C# Corner”ãããããã§ããC#ã«ç¹åããæ å ±å ±æãµã€ãã§ãèšäºãããã°ããã©ãŒã©ã ãäžäœãšãªã£ãŠãããå€ãã®ãªãœãŒã¹ããåŠã¶ããšãã§ããŸãã
9. C#åŠç¿ã®æ¬¡ã®ã¹ããã
åºæ¬çãªC#ã®æŠå¿µãšæ§æãåŠã³ãåããŠã®ããã°ã©ã ãäœæããããšã次ã«é²ãããã®æ¹åãããã€ããããŸããããã§ã¯ããããã®éžæè¢ã詳ããèŠãŠããããšã«ããŸãã
9.1 ã¢ããã³ã¹ãC#ãããã¯ã¹
C#ã¯ãè¡šé¢çãªç¹æ§ã ããç解ããã°ããã«ã³ãŒãã£ã³ã°ãã§ããããã«ãªãèšèªã§ããããã®èåŸã«ã¯å€§éã®æŽç·Žãããæ©èœãé ããŠããŸããããããç解ããããšã«ããããããšã¬ã¬ã³ãã§å¹ççãªã³ãŒããæžãããšãå¯èœã«ãªããŸããããã€ãã®ã¢ããã³ã¹ãC#ãããã¯ã¹ãåŠã¶ã¹ãã§ããããããã«ã¯ãäŸãã°ãLINQïŒLanguage Integrated QueryïŒãéåæããã°ã©ãã³ã°ã®å©çšãããªã²ãŒããšã€ãã³ãããžã§ããªã¯ã¹ãNull蚱容åãªã©ãå«ãŸããŸãã
9.2 ãã¬ãŒã ã¯ãŒã¯ãšããŒã«ã®åŠç¿
C#ã ãã§ã¯ãªããããããµããŒããããã¬ãŒã ã¯ãŒã¯ãšããŒã«ã«ã€ããŠã®ç解ãæ·±ããããšã¯éèŠã§ãã.NETãã¬ãŒã ã¯ãŒã¯ã.NET Coreã¯åœç¶å¿ èŠã§ãããããã«å ããŠãšã³ãã£ãã£ãã¬ãŒã ã¯ãŒã¯ïŒããŒã¿ã¢ã¯ã»ã¹ã®ããã®ãªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ïŒãASP.NET MVCïŒWebã¢ããªã±ãŒã·ã§ã³ã®éçºã®ããã®ãã¬ãŒã ã¯ãŒã¯ïŒãšãã£ããã¬ãŒã ã¯ãŒã¯ãåŠã¶ãšãC#ã®å¯èœæ§ãããã«åºããããšãã§ããŸãã
9.3 å®è·µãããžã§ã¯ãã®æšå¥š
æåŸã«ããããŠæãéèŠãªç¹ãšããŠã¯ãæ°ããç¥èãå®éã®ãããžã§ã¯ãã«é©çšããããšã匷ãæšå¥šããŸããæ¬ç©ã®å®è·µãããžã§ã¯ãã«åãçµãããšã§ãåŠãã ããšãå®éã®åé¡è§£æ±ºã«å¿çšããæ¹æ³ãåŠã¶ããšãã§ããŸããããã¯ãã³ãŒããæžãæè¡ã ãã§ãªãããœãããŠã§ã¢ãã¶ã€ã³ããããã°ããã¹ãã®ã¹ãã«ãåæã«ç£šãæ©äŒã«ãªããŸãã
ãã§ã«C#ã®åºæ¬ããã¹ã¿ãŒããããªããªãããã®ã¹ãããã¯é¿ããŠéããªãéã§ããä»åŸã®åŠç¿ãšå®è·µã«æåãç¥ããŸãã
10. ãŸãšã
C#ã¯ãçŸä»£ã®éçºç°å¢ã«ãããŠéåžžã«éèŠãªåœ¹å²ãæãããŠããããã°ã©ãã³ã°èšèªã§ãããã®å€æ§æ§ãšæè»æ§ã«ãããããŸããŸãªã¢ããªã±ãŒã·ã§ã³éçºã«å¯Ÿå¿ã§ããŸãããã®èšäºã§ã¯ãC#ã®æŠå¿µããåºæ¬çãªæ©èœããªããžã§ã¯ãæåããã°ã©ãã³ã°ããããŠããŒã¿ç®¡çãŸã§ãC#ã®åºç€ãç¶²çŸ çã«èª¬æããŸããã
ãŸããC#ã§ã®ã¢ããªã±ãŒã·ã§ã³éçºã®åºæ¬ã觊ããConsoleãWindowsãã©ãŒã ããããŠWebã®åã¢ããªã±ãŒã·ã§ã³ã®äœæãéããŠãC#ã®å®è·µçãªæŽ»çšæ³ã«ã€ããŠãåŠã¶ããšãã§ããŸããã
æ¬èšäºãéããŠãåå¿è ã§ãC#ã®åºæ¬çãªæäœãç解ããã³ãŒããæžãããšãã§ããããã«ãªãã§ããããç¶ããŠåŠç¿ãæ·±ããŠããããšã§ãããé«åºŠãªããã°ã©ãã³ã°ã¹ãã«ã身ã«ã€ããããšãå¯èœã§ãã
ããã©ããããããŸããŸãªåŠç¿ãªãœãŒã¹ãã³ãã¥ããã£ã玹ä»ããèªè ãèªèº«ã®åŠç¿ãèªäž»çã«é²ãããããããªæ å ±ãæäŸããŠããŸãã
æåŸã«ããã®èšäºãèªè ã®ããã°ã©ãã³ã°åŠç¿ã®äžå©ãšãªãããšãé¡ã£ãŠããŸãããããŸã§ã®å 容ãæ¯ãè¿ãããŸã ç解ã§ããŠããªãéšåã¯ååŠç¿ããããã«ããŸããããC#ããã°ã©ãã³ã°ã®æ ã¯ãããããæ¬çªã§ããèªåèªèº«ãä¿¡ããäžæ©ã¥ã€é²ãã§ãããŸãããã