ã¯ããã«
ãã®èšäºã§ã¯ãããã°ã©ãã³ã°èšèªã®äžã€ã§ããC#ã«ã€ããŠè©³ãã解説ããŸããããããC#ãåŠãŒããšèããŠããæ¹ã¯å¿è«ãæ¢ã«ããã°ã©ãã³ã°çµéšã®ããæ¹ãããã®èšäºãèªãããšã§C#ã®é åããç解ã§ããã§ãããã
C#ãšã¯äœãïŒ
C#ïŒã·ãŒã·ã£ãŒãïŒã¯ããã€ã¯ããœãããéçºããäžè¬çãªããã°ã©ãã³ã°èšèªã§ããã.NET Frameworkãšãããã©ãããã©ãŒã äžã§åäœããŸãã
ãªããžã§ã¯ãæåã«åºã¥ããŠèšèšãããŠãããJavaãC++ãªã©ã«äŒŒãææ³æ§é ãæã€ãããä»ã®ããã°ã©ãã³ã°èšèªã«éŠŽæã¿ã®ããæ¹ãåŠã³ããããšèšããŸãããŸããWindowsã¢ããªã±ãŒã·ã§ã³ã®éçºãããWebã¢ããªã±ãŒã·ã§ã³éçºãããã«ã¯ã²ãŒã éçºãŸã§å¹ åºãçšéã§å©çšã§ããã®ãç¹åŸŽã§ãã
ãªãC#ãåŠã¶ã¹ããªã®ãïŒ
ãããŠããªãC#ãåŠã¶ã¹ããªã®ããšèšããšãæ°ããããã°ã©ãã³ã°èšèªã®äžã§ãC#ã¯æè»æ§ãšè¡šçŸåãåªããŠããç¹ãæããããŸãããã®ããã©ã®ãããªããã°ã©ã ã§ãC#ã§å®çŸããããšãå¯èœãšãªããŸãã
ãŸããWindowsã®éçºå ã§ãããã€ã¯ããœãããæäŸããŠããèšèªã®ãããWindowsã¢ããªã±ãŒã·ã§ã³ã®éçºã«ãããŠã¯ç¡æµã®ååšæãèªããŸããããã«ãåŠã¹ã°åŠã¶ã»ã©æ°ããªæ©èœãè¡šçŸåãçºèŠã§ããã®ããC#ã®æã€å¥¥æ·±ããšèšããã§ãããã
C# ç¬åŠã¬ã€ãã®ç®çãšç®æš
æ¬ã¬ã€ãã®ç®çã¯ãåå¿è ã§ãå®å¿ããŠC#ãåŠã¹ãããã«ãªãããšãç®çãšããŠããŸããC#ã®åºç€ããé ã«åŠã³ãå ·äœçãªããã°ã©ã ãæžãåãè²ãŠãããšã§ãC#ã®é åãæ倧éã«åŒãåºãããšãåºæ¥ãããã«ãªãããšãç®æšã§ãã
ã¡ãã£ãšããç¥èãããããžã§ã¯ãã®ç«ã¡äžããå®éã«ã¢ããªã±ãŒã·ã§ã³ã補äœãããšãã£ãã¹ãã«ã身ã«ã€ããæçµçã«ã¯èªåã ãã®ãªãªãžãã«ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããã¬ãã«ãç®æããŸãã
C#ã®åºæ¬
ããã°ã©ãã³ã°ã®äžçã«ã¯ããŸããŸãªèšèªãååšããŸãããããã§ã¯äžã€ã®ããã¥ã©ãŒãªèšèªã§ããC#ã«ã€ããŠãã®åºæ¬ã解説ããŸããC#ã¯ããã®å€æ©èœæ§ãšäœ¿ããããããå¹ åºãã¢ããªã±ãŒã·ã§ã³éçºã«å©çšãããŠããŸãã
ããã°ã©ãã³ã°èšèªãšããŠã®C#ã®äœçœ®ä»ã
C#ã¯ããã€ã¯ããœãããéçºãããªããžã§ã¯ãæååã®ããã°ã©ãã³ã°èšèªã§ãJavaãC++ãšãã£ãä»ã®èšèªãšæ¯ã¹ãŠãã·ã³ãã«ã§å¯èªæ§ã®é«ãã³ãŒããå®çŸããŸããåæã«ãåå®å šãšããç¹æ§ãæã¡ãããã°ã©ã å®è¡æã®ãšã©ãŒãäºæž¬äžèœãªåäœãæžããããšãå©ããŠããŸãã
C#ã®ææ³ãšåºæ¬çãªæ©èœ
C#ã®ææ³ã¯é«ãçŽææ§ãæã¡ã€ã€ããæ·±ãæ©èœãåããŠããŸããåºæ¬çã«ã¯ãå€æ°å®£èšãæŒç®åãå¶åŸ¡æ§é ïŒifæãforæãªã©ïŒãã¡ãœãããã¯ã©ã¹ã®å®çŸ©ãªã©ãåºæ¬çãªããã°ã©ãã³ã°ã®ãšã¬ã¡ã³ããæäŸããŠããŸãã
ãŸããC#ã¯å¶åŸ¡ãããŒã现ããæå®ããããšãå¯èœã§ãããæ¡ä»¶ã«ããåå²ãç¹°ãè¿ããèªç±ã«èšè¿°ã§ããŸããéåæåŠçããªããžã§ã¯ãæåããã°ã©ãã³ã°ãäŸå€åŠçãªã©ã®åŒ·åãªæ©èœããµããŒãããŠããŸãã
Visual Studioãš.NET Frameworkã®æŠèŠ
C#éçºã§ã¯ããã€ã¯ããœãããæäŸããVisual Studioãšããçµ±åéçºç°å¢ã䜿ãããšãäžè¬çã§ããVisual Studioã¯C#ã ãã§ãªããè€æ°ã®ããã°ã©ãã³ã°èšèªããµããŒããããœãŒã¹ã³ãŒãã®ç·šéããã³ã³ãã€ã«ããããã°ãŸã§äžè²«ããŠè¡ãããšãã§ããŸãã
C#ããã°ã©ã ãå®è¡ããããã®ã©ã³ã¿ã€ã ç°å¢ãšããŠã¯.NET FrameworkããããŸãã.NET Frameworkã¯ãã€ã¯ããœããã®Windowsç³»åã®OSãšå¯æ¥ã«é£æºããé«åºŠãªããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãæäŸããŸãã
C#ã§ã®ããã°ã©ã ã®æžãæ¹ãšåããæ¹
C#ã§ã®ããã°ã©ã ã¯ãœãŒã¹ã³ãŒããšãã圢åŒã§èšè¿°ããããã®ãã¡ã€ã«ã¯ã.csãã®æ¡åŒµåãæã¡ãŸããããã°ã©ã ã®å®è¡ã«ã¯ã³ã³ãã€ã«ãšããäœæ¥ãå¿ èŠãšããŸããã³ã³ãã€ã«ã¯ãœãŒã¹ã³ãŒãããã·ã³ãèªã¿ããã圢åŒã«å€æããäœæ¥ã®ããšã§ãããã¯Visual Studioãèªåçã«è¡ã£ãŠãããŸãã
å ·äœçãªããã°ã©ã ã®æžãæ¹ã¯ãéçºããã¢ããªã±ãŒã·ã§ã³ã®çš®é¡ãç®çã«å€§ããå·Šå³ãããŸãããC#ããã°ã©ã ã®åºæ¬çãªæ§é ãç解ããããšã§ãããããããã°ã©ã ãæžãããŒãã€ã³ããèŠããŠããŸãã
C#åçŽç·š
C#ãç解ããäžã§éèŠãªèŠçŽ ãšããŠããŸãã¯C#ã®ããŒã¿åãšå€æ°ããããŠå¶åŸ¡æ§æã«ã€ããŠåãäžããŸãããããŠããããçµã¿åãããŠäœ¿ãããã®é åãšã³ã¬ã¯ã·ã§ã³ãæåŸã«ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºç€ã«ã€ããŠè§£èª¬ããŸãã
C#ã®ããŒã¿åãšå€æ°
å€æ°ãšã¯ãããŒã¿ãæ ŒçŽããããã®ç®±ã§ããã®ç®±ã«å ¥ããããããŒã¿ã®çš®é¡ãæå®ããã®ãããŒã¿åã§ããC#ã«ã¯æŽæ°ãæ±ãintåãå®æ°ãæ±ãdoubleåãæååãæ±ãstringåãªã©å€ãã®ããŒã¿åãçšæãããŠããŸããå€ãä»£å ¥ããããå€ãåãåºãããããããšã§ããã°ã©ã ãå¶åŸ¡ããŸãã
å¶åŸ¡æ§æ: æ¡ä»¶åå²ãšã«ãŒã
å¶åŸ¡æ§æãšã¯ãããã°ã©ã ã®æµããå€ããããã®ææ³ã§ããäž»ã«æ¡ä»¶åå²ãšã«ãŒãã®äºã€ã«åããããŸããæ¡ä»¶åå²ã¯ãç¹å®ã®æ¡ä»¶ãå ã«ããŠããã°ã©ã ã®æµããåãããã®ã§ãããifæãswitchæãªã©ããããŸããã«ãŒãã¯ãç¹å®ã®åŠçãç¹°ãè¿ãå®è¡ããããã®å¶åŸ¡æ§æã§ãforæãwhileæãçšæãããŠããŸãã
é åãšã³ã¬ã¯ã·ã§ã³
è€æ°ã®ããŒã¿ãã²ãšãŸãšãã«æ±ããããšããé åãšããæ©èœãçšããããšããããŸããé åã¯ãåãããŒã¿åã®ããŒã¿ãã²ãšãŸãšãã«ããããšãã§ããŸãããŸããC#ã§ã¯é å以å€ã«ãã³ã¬ã¯ã·ã§ã³ãšããæ©èœãçšæãããŠããããªã¹ã(List)ãèŸæž(Dictionary)ãªã©ã䜿çšããããšãã§ããŸãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºç€ïŒã¯ã©ã¹ããªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹
C#ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã®äžã€ã§ããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºæ¬ãšãªãæŠå¿µãç解ããããšã¯éèŠã§ããããã§ããäž»ãªæŠå¿µãšã¯ã¯ã©ã¹ããªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹ãšãã£ããã®ã§ãããããã®æŠå¿µãç解ããé©åã«äœ¿çšããããšã§ãããå¹ççã§èªã¿ãããã³ãŒããæžãããšãå¯èœãšãªããŸãã
C#äžçŽç·š
ããããC#ã®äžçŽç·šãžãããã§ã¯ãããæ¬æ ŒçãªC#ããã°ã©ãã³ã°ã«äžå¯æ¬ ãšãªãç¥èãšã³ã³ã»ããã«ã€ããŠè§£èª¬ããŠãããŸãã
äŸå€åŠçãšãããã°ææ³
ããã°ã©ã ãå®è¡äžã«äºæããªãç¶æ ããšã©ãŒã«ééããéããããé©åã«åãæ±ãããã®æ¹æ³ãäŸå€åŠçã§ããC#ã«ãããäŸå€åŠçã¯ãtry-catch-finally ãããã¯ãçšããŠå®è£ ããŸãã
try { //äŸå€ãçºçããå¯èœæ§ãããã³ãŒã } catch (Exception e) { //äŸå€ãçºçããéã®åŠç } finally { //äŸå€ã®çºçã«é¢ä¿ãªãå®è¡ãããåŠç }
é©åãªäŸå€åŠçãè¡ãããšã§ãäºæããªããšã©ãŒã«ããããã°ã©ã ã®çµäºãé¿ãããšã©ãŒçºçæã®å¯Ÿå¿ãããã°ã©ã èªäœãè¡ãããšãåºæ¥ãŸãã
ãŸããããã°ã©ã ãæå³ããéãã«åããªãæããã°ã®åå ãèŠã€ããå¿ èŠããããŸãããã®ããã®ææ³ããããã°ã§ããVisual Studioãªã©ã®çµ±åéçºç°å¢ã§ã¯ããã¬ãŒã¯ãã€ã³ããèšå®ããŠããã°ã©ã ãäžæåæ¢ãããããå€æ°ã®å€ãå®è¡äžã«ç¢ºèªãããããããšãå¯èœã§ãã
ãœãããŠã§ã¢èšèšååïŒSOLIDïŒã®æŠèŠ
次ã«åãçµãã¹ãã¯ãããåæ»ãªéçºãšä¿å®ãå¯èœã«ãããœãããŠã§ã¢èšèšååãããªãã¡SOLIDã®ååã§ããSOLIDãšã¯5ã€ã®ååã®é æåããšã£ããã®ã§ãS: Single Responsibility PrincipleïŒåäžè²¬ä»»ååïŒãO: Open-Closed PrincipleïŒéæŸééååïŒãL: Liskov Substitution PrincipleïŒãªã¹ã³ãã®çœ®æååïŒãI: Interface Segregation PrincipleïŒã€ã³ã¿ãŒãã§ãŒã¹åé¢ååïŒãD: Dependency Inversion PrincipleïŒäŸåæ§é転ååïŒãããªããŸãã
ãããã®ååã¯ããœãããŠã§ã¢ãæé·ãå€åããéã«ãæè»ã«å¯Ÿå¿ã§ãããããèšèšã®åæ段éã§æ³šææ·±ãèæ ®ããã¹ãéèŠãªã¬ã€ãã©ã€ã³ã§ãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®é²äžæ©ïŒç¶æ¿ãããªã¢ãŒãã£ãºã ïŒ
ããŠãããã§å ã»ã©ã®SOLIDã®äžã®äžéšãLiskov Substitution Principleãå«ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®éèŠãªã³ã³ã»ããã§ããç¶æ¿ãšããªã¢ãŒãã£ãºã ãã¿ãŠã¿ãŸãããã
ç¶æ¿ã¯ãæ¢åã®ã¯ã©ã¹ïŒèŠªã¯ã©ã¹ïŒã®ããããã£ãã¡ãœãããæ°ããã¯ã©ã¹ïŒåã¯ã©ã¹ïŒãåŒãç¶ãããšã§ãã³ãŒãã®åå©çšãå¯èœã«ãããã®ã§ããäžæ¹ããªã¢ãŒãã£ãºã ãšã¯ãäžã€ã®åã®ãšã³ãã£ãã£ãç°ãªã圢ïŒå¥ã®åïŒãšããŠæ¯ãèãèœåãæããŸãã
ãããã®ã³ã³ã»ãããå©çšããããšã§ãæ¢åã®ã³ãŒããåå©çšãæ°ããªæ©èœãå ããããåãã€ã³ã¿ãŒãã§ãŒã¹ã«å¯ŸããŠç°ãªãæ¯ãèãããããããšãå¯èœã«ãªããããå¹ççãªããã°ã©ãã³ã°ãå¯èœãšãªããŸãã
ãã¡ã€ã«IOãšã·ãªã¢ã©ã€ãº
æåŸã«ãããã°ã©ã ã§ããŒã¿ãæ°žç¶çã«ä¿åããããä»ã®ããã°ã©ã ããã·ã³ãšããŒã¿ã亀æããããã®ææ³ãšããŠããã¡ã€ã«I/OïŒå ¥åºåïŒãšã·ãªã¢ã©ã€ãºã«ã€ããŠæ±ããŸãã
C#ã«ã¯ããã¡ã€ã«ãèªã¿æžãããããã®è±å¯ãªAPIãæäŸãããŠãããããããå©çšããŠããã¹ããã¡ã€ã«ããã€ããªãã¡ã€ã«ã®æäœãå¯èœã§ãã
äžæ¹ãã·ãªã¢ã©ã€ãºã¯ãªããžã§ã¯ãã®ç¶æ ãããŒã¿ã¹ããªãŒã ã«å€æããããã»ã¹ãæããŸãããã·ãªã¢ã©ã€ãºã¯ãã®éã§ãããŒã¿ã¹ããªãŒã ãåã³ãªããžã§ã¯ãã«å€æããŸãã
ããã«ãããããã°ã©ã ã®ç¶æ ãä¿åãããããããã¯ãŒã¯è¶ãã«ãªããžã§ã¯ããéä¿¡ããçãæ§ã ãªçšéã§å©çšã§ããŸãã
以äžããC#ã®äžçŽçãªç¥èãšæè¡ã«ãªããŸãããããã®æè¡ã身ã«ã€ããããšã§ãããè€éãªããã°ã©ã ãå¹ççã«éçºããããšãå¯èœãšãªããŸãã
C#äžçŽç·š
åçŽç·šãäžçŽç·šã§åºæ¬çãªC#ã®ç¥èãææ¡ããããªãã«ãšã£ãŠãä»åã®äžçŽç·šã§ã¯ããã«ã¹ãã«ã¢ãããå³ãããã®ããŒããã玹ä»ããŸãã
éåæåŠçã®ç解
ãŸãæåã«åãçµãã®ã¯éåæåŠçã§ããããã¯ããåŠçãçµäºããã®ãåŸ ããã«æ¬¡ã®åŠçã«é²ãããšãå¯èœã«ããéèŠãªæŠå¿µã§ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãé«ããããã«å¿ èŠãªç¥èã§ããäŸãã°ãããŒã¿ã®ããŠã³ããŒããé·æéãããã±ãŒã¹ã§ããéåæåŠçãçšããããšã§ä»ã®æäœãå¶éããã«ããã°ã©ã ãåããããšãã§ããŸãã
C#ã§ã¯ãasyncãšawaitã䜿ã£ãéåæåŠçãäžè¬çã§ãããããã®ããŒã¯ãŒããå©çšãããšãéåæã¿ã¹ã¯ãç°¡åã«å®è£ ã§ããã³ãŒããèªã¿ãããä¿ã€ããšãã§ããŸãã
LINQã«ããããŒã¿åŠç
次ã«ãLINQïŒLanguage Integrated QueryïŒã«ã€ããŠåŠã³ãŸããããã¯C#çµã¿èŸŒã¿ã®åŒ·åãªã¯ãšãªæ©èœã§ãSQLã®ãããªåœ¢ã§ã³ã¬ã¯ã·ã§ã³ãããŒã¿ãœãŒã¹ã«å¯Ÿããæäœãè¡ãããšãã§ããŸãã
LINQãçšãããšãããŒã¿ãå¹çããåŠçã§ããã ãã§ãªãã³ãŒãã®å¯èªæ§ãã¢ããããŸãããã®ãããããŒã¿ããŒã¹æäœãé »ç¹ã«è¡ãããã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåã«ã¯ããã®LINQã¯éåžžã«æçšãªããŒã«ãšãªãã§ãããã
ãŠããããã¹ãã®å°å ¥
ãããŠããŠããããã¹ãã®å°å ¥ã§ããããã¯ããœãããŠã§ã¢éçºã®äžéšãšããŠæ¬ ãããªããã¹ãææ³ã®äžã€ã§ãããããã®é¢æ°ãã¡ãœãããæåŸ éãã®çµæãåºããããã§ãã¯ãããã®ã§ãã
C#ã§ã¯ãNUnitãxUnit.netãšãã£ããã¬ãŒã ã¯ãŒã¯ãããããããã䜿ã£ãŠãŠããããã¹ããè¡ããŸãããŠããããã¹ããå°å ¥ããããšã§ãã³ãŒãã®å質ãé«ãããã°ãæ©æã«èŠã€ãåºãããšãå¯èœã«ãªããŸãã
ãã¶ã€ã³ãã¿ãŒã³ãšãã®C#ã§ã®å®è£
æåŸã«ããã¶ã€ã³ãã¿ãŒã³ã«ã€ããŠçŽ¹ä»ããŸããããã¯äžè¬çãªãœãããŠã§ã¢èšèšã®åé¡ã解決ããããã®å®çžŸã®ãããœãªã¥ãŒã·ã§ã³ã®ããšãæããŸããäŸãã°ããSingletonãããFactoryãããStrategyããªã©ãããããããã¯ç¹å®ã®ç¶æ³ã§æé©ãšããããœãªã¥ãŒã·ã§ã³ã§ãã
ãããã®ãã¶ã€ã³ãã¿ãŒã³ãç解ããé©åãªå Žé¢ã§æŽ»çšããããšã§ãå¹ççã«è³ªã®é«ãã³ãŒããæžãããšãã§ããŸãããã®ãããC#ã§ã¢ããªã±ãŒã·ã§ã³ãèšèšã»éçºããéã«ã¯ããã¶ã€ã³ãã¿ãŒã³ã®ç¥èã¯å¿ é ãšãªããŸãã
ãŸãšãããšãäžçŽç·šã§ã¯C#éçºã®ãããªãç解ãç®æããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹åäžãããŒã¿åŠçã®é«éåãã³ãŒãå質ã®ç¢ºä¿ããããŠå¹ççãªèšèšææ³ã®åŠç¿ãšãã£ãããŒããæ±ããŸãããããã®ç¥èãšã¹ãã«ãæã€ããšã§ãããªãã®C#éçºè ãšããŠã®åºåã倧ããåäžããããšã§ãããã
å®è·µç·šïŒC#ã§ã®ãããžã§ã¯ã
ãããŸã§ã«ã玹ä»ããC#ã®åºæ¬ããäžçŽãŸã§ã®ç¥èã掻ãããããããC#ãçšããå®è·µçãªãããžã§ã¯ããäœæããŠè¡ããŸããããããã§ã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãã²ãŒã éçºãšãã3ã€ã®èŠç¹ãããC#ã®æŽ»çšã«ã€ããŠè§£èª¬ããŸãã
C#ã§ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³éçº
C#ã¯ã.NET Frameworkã®ASP.NETãšäžç·ã«çšããããšã§ã匷åãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæããäºãåºæ¥ãŸããASP.NETãšã¯ãWebãµãŒãã§åããã¢ããªã±ãŒã·ã§ã³ãéçºããããã®ãã¬ãŒã ã¯ãŒã¯ã§ããHTMLãCSSãJavaScriptãšãã£ãã¯ã©ã€ã¢ã³ããµã€ãã®æè¡ã«å ããŠããµãŒããŒãµã€ãã®ããžãã¯ãC#ã§æžãããšãå¯èœãšãªããŸãã
äŸãã°ãããŒã¿ããŒã¹ãšé£æºãããªãããªWebã¢ããªã±ãŒã·ã§ã³ã®éçºãå¯èœã§ãããŸããASP.NET Coreãšããã¯ãã¹ãã©ãããã©ãŒã ã®ãã¬ãŒã ã¯ãŒã¯ãçšããããšã§ãLinuxãmacOSã§ãåäœããã¢ããªã±ãŒã·ã§ã³ãéçºããããšãã§ããŸãã
C#ã§ã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³éçº
次ã«ãC#ã«ãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã§ããC#ãš.NET FrameworkãçšããŠãWindowsãã¹ã¯ãããã®ã°ã©ãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ãäœãããšãå¯èœã§ãã
å ·äœçã«ã¯ãWindows FormsãWPFïŒWindows Presentation FoundationïŒãšãã£ããã¯ãããžãŒã䜿ããŸãããããã®æè¡ãçšããããšã§ããã¿ã³ãããã¹ãããã¯ã¹ãªã©ã®UIã³ã³ããŒãã³ããæã€ãã€ã³ã¿ã©ã¯ãã£ããªãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãäœæããããšãã§ããŸãã
äŸãã°ãç»åç·šéããŒã«ããã¡ã¢åž³ãè¡šèšç®ãœãããªã©ã®äœæãå¯èœã§ãã.NET 5ããã¯ãWindows以å€ã§ãåäœãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãéçºã§ããããã«ãªããŸããã
C#ã§ã®ã²ãŒã éçº
æåŸã«ãã²ãŒã éçºã§ããC#ã¯ã人æ°ã®ã²ãŒã ãšã³ãžã³ã§ããUnityã®ããã°ã©ãã³ã°èšèªãšããŠæ¡çšãããŠããŸããUnityã¯ã3Dã²ãŒã ã¯ãã¡ããã®ããšã2Dã²ãŒã ãVR/ARã²ãŒã ã®äœæãå¯èœãªåŒ·åãªã²ãŒã éçºããŒã«ã§ãã
Unityã«ãããC#ã®åœ¹å²ã¯ãã²ãŒã ãªããžã§ã¯ãã®æåãå¶åŸ¡ããã¹ã¯ãªãããèšè¿°ããããšã§ããUnityã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ã²ãŒã ã®ã·ãŒã³ãèšèšããããã«åœãå¹ã蟌ãã®ãC#ã®ã¹ã¯ãªããã§ããã€ãŸããUnityãšC#ãé§äœ¿ããã°ãèªåã ãã®ãªãªãžãã«ã²ãŒã ãäœæããããšãå¯èœãšãªããŸãã
以äžãC#ãçšãããŠã§ãã¢ããªã±ãŒã·ã§ã³ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãã²ãŒã éçºã®æŠèŠã«ã€ããŠèª¬æããŸãããããããã®åéã§C#ã®åã掻ããããšã§ãå¹ åºããžã£ã³ã«ã®ã¢ããªã±ãŒã·ã§ã³éçºãå¯èœãšãªããŸããC#ã®åŠç¿ãæ·±ããèªåã ãã®ã¢ããªã±ãŒã·ã§ã³ãçã¿åºããŠã¿ãŠãã ããã
ç·ãŸãšããšããããã®åŠç¿æ¹æ³
ãã®é·ãåŠç¿æ è¡ã®æåŸã«ã¯ãC#ã®éèŠãªèŠçŽ ãšãã以äžã«é²ãããã®ãªãœãŒã¹ãåèããå¿ èŠããããŸããããããã©ã®éãéžãã§ããåºæ¬çãªæèæ³ãšå ·äœçãªããŒã«ã¯å€ãããŸããã
C#åŠç¿ã®éèŠãã€ã³ã
培åºçã«åºç€ãç解ããããšã¯ãã©ããªã«æ°ããæè¡ãç»å ŽããŠãããã®åºæ¬çãªæŠå¿µãšæ¹æ³ãç解ããŠæŽ»çšããŠããäžã§éåžžã«å€§åã§ããå€æ°ãããŒã¿æ§é ãæ¡ä»¶åå²ãã«ãŒããªã©ã®åºæ¬çãªæŠå¿µã¯C#ã®ä»ã«ãæ§ã ãªèšèªã§çšããããŸããããããç解ããŠããã°ãæ°ããèšèªãåŠã¶éã«ã圹ç«ã€ç¥èãšãªããŸãã
ã³ãŒããæžããŠã¿ãããšãéèŠã§ãããã åŠãã ããšãèªãã ãã§ã¯ãªããèªåã§å®éã«æãåãããŠã³ãŒããæžããŠã¿ãããšã§ãç解ãæ·±ãŸãããšã§ããããããã«ãèªåã§èããŠããã°ã©ã ãäœãããšã§ãçè«ã ãã§ãªãå®è·µçãªã¹ãã«ã身ã«ã€ããŸãã
ãããŠæåŸã«ç¶ç¶ããããšãçŽ æŽãããããã°ã©ããŒã«ãªãããã«ã¯æéãšçµéšãå¿ èŠã§ããäžåºŠã«å šãŠãç解ããã®ã¯å°é£ãããããŸããããæ¯æ¥å°ããã€ã§ãåŠã³ç¶ããããšã§ã確å®ã«ã¹ãã«ãé€ãããšãã§ããã§ãããã
ãããªãã¹ãã«ã¢ããã®ããã®ãªãœãŒã¹
C#ãä¿®åŸããã次ã«è¡ãã¹ãã¹ãããã¯ããããžã§ã¯ããããŒã ã¡ã³ããŒãšååããŠå€§èŠæš¡ãªã·ã¹ãã ãæ§ç¯ããçµéšãç©ãããšã§ãããããžã§ã¯ããå®æãããããã«ã¯ãéçºææ³ãç解ããé©åãªèšèšãè¡ãããã¹ããçµãå®å®ããã³ãŒããäœæããããšãæ±ããããŸãã
å ·äœçãªåŠç¿ãªãœãŒã¹ãšããŠã¯ãMicrosoftå ¬åŒã®ããã¥ã¡ã³ããŒã·ã§ã³ãGitHubãªã©ã®ãœãããŠã§ã¢éçºãã©ãããã©ãŒã ãStack Overflowãªã©ã®ããã°ã©ãã³ã°Q&Aãµã€ãããããŸãããããã®ãªãœãŒã¹ã¯ãã€ã§ãå©çšã§ãããããžã§ã¯ãã®ãããã段éã§å¿ èŠãªæ å ±ãæäŸããŠãããŸãã
æåŸã«ãä»ã®ãšã³ãžãã¢ãåŠç¿è ãšäº€æµããããšãéèŠã§ãããªã³ã©ã€ã³ã®ã³ãŒãã£ã³ã°ã³ãã¥ããã£ãããŒã«ã«ã®ããŒãã¢ãããã³ãŒãã£ã³ã°ããŒããã£ã³ããªã©ã掻çšããŸããããããã«ããæ°ããªèŠç¹ãåŸãããå ±éã®åé¡ã解決ããããã®å©ããåŸãããŸãã
ãã®ã¬ã€ãã¯ãããŸã§äžã€ã®éçã§ãããä»ã«ãããŸããŸãªåŠç¿æ¹æ³ãååšããŸãã倧äºãªã®ã¯èªåã«åã£ãåŠç¿æ³ãèŠã€ãããããç¶ããããšã§ãããããããC#ã®äžçã楜ãã¿ãªãããæ°ããªã¹ãã«ã身ã«ä»ããŠãããŸãããã