EffectiveC# 6.0/7.0 ãèªãã ææ³ã¨å¦ã³
â»2024/4æç¾å¨ãC# ã®ææ°verã¯12ã§ãããã¨ã«æ³¨æ
ãC#ãããè¯ãæ¸ãã¦ããããã®tipséãç´°é¨çãã¤å ·ä½çãªtipséã®ããããªããªãã¹ã¤ã¹ã¤ã¨èªãã§ããã®ã¯é£ãããããå°ãæ½è±¡åº¦ã®é«ãè¨è¿°ãã³ã³ã»ããåãããã¨èªã¿é²ããããã ãããªã¨æã£ãããã ãè¦å´ããªããèªãã§ãããã¡ã«ãçè ã®ä¸è²«ãã価å¤è¦³ã¨ãã£ããã®ãæãåããä¸ç´ä»¥ä¸ãç®æãããã®é©åãªå¿æ§ããæãåããã¨ãã§ãããã¾ã¨ããã¨ãæ½è±¡çãªå¦ã³ã¯ä¸è¨ã®éãã
â æ¬æ¸ã®ã¡ãã»ã¼ã¸ãæ½è±¡åãã¦çè§£ããã¨
- æ´å²ã®ããè¨èªãªããåãç®çãéæããããã«ãè¤æ°ã®ã¢ããã¼ãããããããããã®ã¢ããã¼ããç¥ã£ã¦ãããè¯ãæ¹æ³ã鏿ãããã¨ãæ°ãããã¼ã¸ã§ã³ã§ç»å ´ããè¨æ³ã®ã»ãããç°¡æ½ã«ããããããããããã¨ãå¤ã
- è¨èªãã©ã³ã¿ã¤ã ã®ãã¼ã¸ã§ã³ã¢ãããã¨ã«ãä»ãã便å©ã«æ¸ããæ¸ãæ¹ã¯ç¡ããããã§ãã¯ãã¦ããã¹ã
- è¨èªãã¨ã®ãªã½ã¼ã¹ç®¡çã®ææ³ã¯æãã¦ãããã¨ãã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ããã¹ãã©ã¯ã¿ã®ä»æ§ãã¢ã³ããã¼ã¸ããªã½ã¼ã¹ã®è§£æ¾ææ³
- ãªã½ã¼ã¹ãªã¼ã¯ã«ã¯å¸¸ã«æ³¨æããã
- ã©ã®ãããªãã¨ãããã¨è² è·ãããããçè§£ããããè² è·ããããå¦çãç°¡åã«å®è¡ããªããã¨
- é å»¶è©ä¾¡ãæ´»ç¨ãã¦ãã¡ã¢ãªãå¹ççã«å©ç¨ããã
- ã¸ã§ããªãã¯ãã¤ã³ã¿ã¼ãã§ã¤ã¹ãããªã²ã¼ããªã©ã®æ©è½ãå©ç¨ãã¦ãæ¡å¼µçãªããã°ã©ãã³ã°ãè¡ãã
- ã³ã¼ãã£ã³ã°æ¼ããé²ããããªãåæååããã¯ããã¯ã¯ç©æ¥µçã«å©ç¨ããã
ãç§ã«ã¨ã£ã¦ã¯ç¥ããªãåèªãæ¦å¿µãããããåºã¦ããã®ã§ãé½åº¦LLMã«æå³ãæå³ã解説ããããã¦ããããªããèªã¿é²ãããç¹ã«ã¸ã§ããªãã¯ã«é¢ãã¦ã¯ãèªåã«ã¨ã£ã¦ã¯ããªãçºå±çãªæ´»ç¨æ¹æ³ãèªãã¦ãããç¥ããªãããã¯ç¥ã£ã¦ããã»ãããããã¨ããç¥è¦ãå¤ãããã
ãããããã®tipsã®ã¡ãã»ã¼ã¸ã«ããã¦ã¯C#ã ãã§ãªããOOPã«ããã¦æ±ç¨çã«ããã ãªãã¨ãã£ããã®ããããæå³ãèæ¯ãçè§£ãã¦ãããã¨ã§ãOOPã¸ã®ç¿çåº¦ãæ·±ããããã¨æããã
èªãã§ãã¦åèã«ãªã£ãã¡ãã»ã¼ã¸ãçè§£å 容ã®è¨èªå
çè ã¨ãã¦ã¯ããã¼ã«ã«å¤æ°ã®åã宣è¨ããå ´åã«ã¯varãæ¨å¥¨ãã¾ããããã¯çè ã®çµé¨ã«ç±æ¥ãããã®ã§ãvarã使ç¨ããã»ããéçºè ã«ã¨ã£ã¦éè¦ãªãã¤ã³ãï¼ã³ã¼ãã®æå³ï¼ã«æ³¨åã§ãããã¼ã«ã«å¤æ°ã®æ¹ã¨ããç´°é¨ãæ°ã«ããã«æ¸ã¾ããããããã§ãã
éçºè ãåæåå¼ããæå³è«çæ å ±ãæç¢ºã«å¾ãããªãããã§ããã°ãvarã使ãã¹ãã§ã¯ãªããåãæè¨ãã¦ãã®æ å ±ãä¼ããããããã«ããã¹ãã§ãã
確ãã«ãããã
constãããreadonlyã使ç¨ãããã¨
C#ã«ã¯ã³ã³ãã¤ã«æå®æ°ã¨ãå®è¡æå®æ°ããããconstã¯ã³ã³ãã¤ã«æå®æ°ã§ãããããªããã£ããªåããé©ç¨ã§ããªããå®è¡æå®æ°ã¯å ¨ã¦ã®åã§å©ç¨ã§ãããã¨ãã話
ãã£ã¹ãã«ã¯is ã¾ãã¯asã使ç¨ãããã¨
is asãå©ç¨ããã°ãå¤æçµæã¯nullã«ãªããnullãã§ãã¯ãããã°ããã®ã§ãtryâ¦catchãä¸è¦ã«ãªããã³ã¼ãéãå°ãªãã§ããã
string.Format()ãè£éæåã«ç½®ãæãã
ãã®ã»ããæ¥½ã ãã
æååæå®ã®APIã使ç¨ããªããã¨
ããã§ãã¼ãã³ã¼ããããæååãnameofæ¼ç®åã«ç½®ãæãããã¨ã«ãã£ã¦ãååã®å¤æ´æä½ãããå ´åã§ãæ´åæ§ãç¶æãããããã«ãªãã¾ãã
nameofæ¼ç®åã使ç¨ããå©ç¹ã¯ãã·ã³ãã«åã®å¤æ´ã夿°åã«ãæ£ããåæ ãããã¨ããç¹ã§ã
IDEã®ãµãã¼ããåãã¦æååå¤ãæ¸ããã®ãããããã
ããªã²ã¼ãã使ç¨ãã¦ã³ã¼ã«ããã¯ã表ç¾ãã
ã¡ã½ããã夿°ã¨ãã¦æ¸¡ãã¾ããããå¦çãçµãã¦ç¹å®ã®å¦çãå¼ã³åºããã¨ãããã¨ãããããããªã¡ã½ããã§è¡ããããªããifåå²ã¨ãã§é å¼µãã®ã§ã¯ãªããããªã²ã¼ããå©ç¨ããã¨ãããã
ã¤ãã³ãã®å¼ã³åºãæã«nullæ¡ä»¶æ¼ç®åã使ç¨ãããã¨
?.ã使ã£ã¦ãå®å ¨ã«ã¢ã¯ã»ã¹ããã
ããã¯ã¹åããã³ããã¯ã¹åè§£é¤ãæå°éã«æãã
ããã¯ã¹åã¨ããã¯ã¹åè§£é¤ã¯ãSystem.Objectãã¤ã³ã¿ã¼ãã§ã¤ã¹åãæå¾ ãããå ´é¢ã«ããã¦å¤åã使ç¨ããå ´åã«å¿ è¦ã¨ãªãã¾ããããããããã¯å¸¸ã«ããã©ã¼ãã³ã¹ãè½ã¨ãæä½ã§ãããã¨ã«æ³¨æãå¿ è¦ã§ãã
C#ã®ãªãã¸ã§ã¯ãã¯ãSystem.Objctç³»ã®ã³ã¬ã¯ã·ã§ã³ã¨ãã«æ ¼ç´ã¯ã§ãã¦ã¯ãã¾ãã®ã ãã©ãããã©ã¼ãã³ã¹ãè¯ããªãã®ã§ãããããã
親ã¯ã©ã¹ã®å¤æ´ã«å¿ããå ´åã®ã¿new修飾åã使ç¨ãããã¨
親ã¯ã©ã¹ããç¶æ¿ãã¦ããåã¯ã©ã¹ã§ã®è©±ãåã¯ã©ã¹ç¬èªã®å®ç¾©ãããã¨ãã ãnewãã¤ãã¾ãããã親ã¯ã©ã¹ã¨åã仿§ã§ãããªããnewãã¤ããæå³ã¯ï¼ã¨ãªã
.NETã®ãªã½ã¼ã¹ç®¡çãçè§£ãã
C#ã«ããã¦ã¯ãã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã¯ä¸è¦ã«ãªã£ããªãã¸ã§ã¯ããèªåçã«æ¤åºãã¦è§£æ¾ãããã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã®ã¿ã¤ãã³ã°ã¯å¶å¾¡ã§ããªãã
ãã¡ã¤ãã©ã¤ã¶ã使ãããããIDisposaleã¤ã³ã¿ã¼ãã§ã¤ã¹ãå©ç¨ãã¦ãDisposeã¡ã½ãããå©ç¨ãã¦ããªã½ã¼ã¹ãéæ¾ããã¹ã
ãã¹ãã©ã¯ã¿â¦OOPã«ããã¦ããªãã¸ã§ã¯ãã®ç ´æ£ã¿ã¤ãã³ã°ã§å¼ã³åºãããã¡ã½ããã®ãã¨ãè¨èªã«ãã£ã¦ã¯ããã¡ã¤ãã©ã¤ã¶ããã¹ãã©ã¯ã¿ãåºå¥ããããã¨ããããC#ã§ã¯ããã¡ã¤ãã©ã¤ã¶ã®å©ç¨ã¯æ¨å¥¨ããã¦ããªã
ãã¼ãã®ã³ã³ãã¯ã·ã§ã³â¦GCãè¡ãã¡ã¢ãªæé©åã®ãã¨ãæçåãã¦ããã¡ã¢ãªç©ºéãæ´çãã¦ãå¹ççã«ã¡ã¢ãªãå©ç¨ãããã¨ãã§ãã
ã¡ã³ãã«ã¯å²å½æ¼ç®åããããªãã¸ã§ã¯ãåæååã使ç¨ãããã¨
䏿¦ã¤ã³ã¹ã¿ã³ã¹çæãã¦ããå¤ããããã®ã§ã¯ãªãã¦ãã³ã³ã¹ãã©ã¯ã¿ãæå®ããã®ã§ã¯ãªãã¦ãã¤ã³ã¹ã¿ã³ã¹çææã«å²ãå½ã¦ãã¾ããããåæå以éã®å¤æ´ãé²ããããªã¹ã³ã¼ãè¨å®ãã§ãããããããã¯ãåºããã«æ¸ããã
staticã¡ã³ããé©åã«åæåãããã¨
ã¯ã©ã¹ã«éçã¡ã³ãã¼ãä¿ã¤å ´åã¯ãé常ã®ã³ã³ã¹ãã©ã¯ã¿ã§ã¯ãªããstaticã³ã³ã¹ãã©ã¯ã¿ã§å¤ãè¨å®ããã
åæåãã¸ãã¯ã®éè¤ãæå°åãã
ãããããªãã©ã¡ã¼ã¿ã®ãã¿ã¼ã³ã«å¿ããã³ã³ã¹ãã©ã¯ã¿ãç¨æãããå ´åããªã¼ãã¼ãã¼ãããããã§ããéãããã©ã«ã弿°ã使ãã
ä¸å¿ è¦ãªãªãã¸ã§ã¯ãã®çæãé¿ãããã¨
ãã¼ã«ã«å¤æ°ãåç §åã§ããããã¤é常ã«é »ç¹ã«å¼ã³åºãããã¡ã½ããä¸ã§ä½¿ç¨ããå¿ è¦ãããå ´åã«ã¯ããã®å¤æ°ãã¡ã³ã夿°ã¸ææ ¼ãã¹ãã§ã
ä½åº¦ãåãã¤ã³ã¹ã¿ã³ã¹ãnewãããã¨ã¯é¿ãããããããªãããã¼ã«ã«å¤æ°ã§ãã£ãã·ã¥ããããç¡æãªå¤æ°ãããããã¤ãããã¨ãé¿ãããããã¼ããªãã¸ã§ã¯ãã®çæã¨ãç ´æ£ã«ã¯ãããªãã«è² è·ããããã
ã³ã³ã¹ãã©ã¯ã¿å ã§ã¯ä»®æ³ã¡ã½ãããå¼ã°ãªããã¨
ä»®æ³ã¡ã½ããã¯ããªã¼ãã¼ã©ã¤ããããå¯è½æ§ãããããããªãã¸ã§ã¯ãã®åæåãå®äºã¦ããªãã¿ã¤ãã³ã°ã§ãä»®æ³ã¡ã½ãããå¼ã³åºãã¨ãæ´¾çå ãæ´¾çå ãã©ã¡ãã®ä»®æ³ã¡ã½ãããå¼ã°ãããéå¸¸ã«ææ¡ãå°é£ã¨ãªãã
ããªãã¸ã§ã¯ãã®åæåãå®äºããå¾ã§ããã°ã大ä¸å¤«ãæ´¾çå ã§ä»®æ³ã¡ã½ãããå¼ã³åºãã°æ´¾çå ã®ãæ´¾çå ã§å¼ã³åºãã°æ´¾çå ã®ã¡ã½ãããå¼ã³åºãããã
æ¨æºçãªDisposeãã¿ã¼ã³ãå®è£ ãã
- IDispsalbeã¤ã³ã¿ã¼ãã§ã¤ã¹ãå®è£ ãã¦ãªã½ã¼ã¹ãè§£æ¾ããã
- Disposeã¡ã½ããã®ä¸ã§ãé©åã«ãªã½ã¼ã¹è§£æ¾ãããã
- ããã¼ã¸ãªã½ã¼ã¹ã®ãªã½ã¼ã¹ãæ®ããããªã±ã¼ã¹ã§ããã°ãnullãæ ¼ç´ãããªã©ãã¦ãåç §ãåãã
- ã¯ã©ã¹ãéããã¼ã¸ãªã½ã¼ã¹ãç´æ¥æ±ãå ´åã«éããé²å¾¡çã¨ãã¦ãã¡ã¤ãã©ã¤ã¶ãå®è£ ãã
- Disposeã¨ãã¡ã¤ãã©ã¤ã¶ã¯ãããããæ´¾çã¯ã©ã¹ã«ããã¦ãªã½ã¼ã¹ç®¡çããããããªã¼ãã©ã¤ãã§ãããããä»®æ³ã¡ã½ããã«å¦çãå§ããããã«ããã
ã¸ã§ããªãã¯ã«ããå¦ç
æä½éå¿ é ã¨ãªãå¶ç´ã常ã«å®ç¾©ãããã¨
ç¨éãã¨ã«æ³å®ããåã®å¶ç´ãwhere å¥ã§ãinterfaceãæå®ãããããã ãåã夿°å®ç¾©ããããã¨ã使ãã¥ãããªã£ã¦ãã¾ããå¶ç´ã«ããå®å ¨æ§ãå¶ç´ã«ãã£ã¦çºçãã使¥éã®ãã©ã³ã¹çãèãã¦å®è£ ããã
å®è¡æã®åãã§ãã¯ã使ç¨ãã¦ã¸ã§ããªãã¯ã¢ã«ã´ãªãºã ãç¹åããã
ã¸ã§ããªãã¯ã®ä¸ã§ãåãã§ãã¯ãè¡ããåãã¨ã®å°ç¨ã®ã¢ã«ã´ãªãºã ãç¨æã§ãããã¸ã§ããªãã¯ã«ãã£ã¦ãå ±éããé¨åã®ã³ã¼ãã®åå©ç¨æ§ã¯é«ãã¤ã¤ãããããã¢ã«ã´ãªãºã ãåãã¨ã«ä½æã§ãã
IComapable
ã¨ICompare ã«ããé åºé¢ä¿ãå®è£ ãã
ã«ã¹ã¿ã ã½ã¼ããå®è£ ãããã¨ãã¯ãä¸è¨ã®ã©ã¤ãã©ãªã使ãã¾ããã
ç ´æ£å¯è½ãªå弿°ããµãã¼ãããããã«ã¸ã§ããªãã¯åã使ãããã¨
ã¸ã§ããªãã¯åãè¨è¨ããéãå弿°ã¨ãã¦IDisposableãåãå ¥ãã¤ã¤ãã¸ã§ããªãã¯åèªèº«ã«ãIDisopsableãå®è£ ãããã
ãâã¸ã§ããªãã¯åã®ã¤ã³ã¹ã¿ã³ã¹ãç ´æ£ãããéã«ãå弿°ã®Disposeã¡ã½ãããå¼ã³åºããã¨ã§ããªã½ã¼ã¹ãªã¼ã¯ãé²ããã¨ãã§ããã
ã¸ã§ããªãã¯ã®å ±å¤æ§ã¨å夿§ããµãã¼ããã
åãã¸ã§ããªãã¯ã«ãç¶æ¿ã°ã«ã¼ããåãåãæå®ãã¦ãã¦ãããã¨ãããå ´åã«ãæç¨ãªãã¯ããã¯ã®è©±ãã¸ã§ããªãã¯ã®ãªãã¸ã§ã¯ãã使ããã¨ãã«ãå ±å¤æ§ããµãã¼ããã¦ããå ´åãåãç¶æ¿ã°ã«ã¼ãã§ããã°ãæå®ããå以å¤ã§ã§ãããã®ã¸ã§ããªãã¯ãªãã¸ã§ã¯ãã«å¥ã®åæå®ããã¸ã§ããªãã¯ãªãã¸ã§ã¯ããçªã£è¾¼ããããã¨ãã話ã親ã¯ã©ã¹ã®åã«ãåã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãæ ¼ç´ã§ããããã¨ãã話ã«è¿ããå夿§ã¯ããã®éã§ã親ã¯ã©ã¹ã®åæå®ããã¸ã§ããªãã¯ã®ãªãã¸ã§ã¯ãããåã¯ã©ã¹ã®åãæå®ããã¸ã§ããªãã¯ãªãã¸ã§ã¯ãã«ä»£å ¥ã§ãããã¨ãã話ã
åãã©ã¡ã¼ã¿ã«ãããã¡ã½ããã®å¶ç´ãããªã²ã¼ãã¨ãã¦å®ç¾©ãã
ã¸ã§ããªãã¯ã¯ã©ã¹ã®åãã©ã¡ã¼ã¿ã«ãããªã²ã¼ããå¶ç´ã¨ãã¦æå®ãããã¨ã§ãç¹å®ã®ã¡ã½ããã®åå¨ãè¦æ±ã§ãããâãä¸è¬çãªinterfaceã¨åãããã«ãå¼ã³åºãå´ã§ã¯ãå®éã«æå®ããåãã©ã¡ã¼ã¿ããªãã§ãããæå®ãããã¯ã©ã¹ã®ãã©ã¡ã¼ã¿ãæ°ã«ããã«åããããã¹ãã©ãã¸ã¼ãã¿ã¼ã³å®ç¾ã®ããã®ãã¯ããã¯ã£ã½ãããªã
26 ã¸ã§ããªãã¯ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨ã¨ãã«å¤ãã¤ã³ã¿ã¼ãã§ã¤ã¹ãå®è£ ãããã¨
- åæ®µã¨ãã¦ãã¸ã§ããªãã¯ãå®è£ ãããåã®.Net Frameworkã§ã¯ãã¤ã³ã¿ã¼ãã§ã¤ã¹ãããªãã£ããæ±ç¨çãªãã¸ãã¹ãã¸ãã¯ãå®è£ ããéã«ãåãobjectåã«ãããããªãã£ã
- ã¸ã§ããªãã¯ãç»å ´ããå¾ã¯ãåã弿°ã¨ãã¦æ¸¡ããããã«ãªã£ããããããã¯ã¹åãã¢ã³ããã¯ã¹åã®ãªã¼ãã¼ããããæ¸ãããããã«ãªã£ã
- 䏿¹ã§ãã©ã¤ãã©ãªçã«ä½¿ããããã¸ãã¯ã®å ´åããå¤ãå®è¡ç°å¢ã§ã®æ´»ç¨ãæ³å®ããã¦ããå ´åã¯ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¿ã®å®è£ ã許å¯ãã¦ãæ±ç¨çã«ä½¿ããããã«ããããã¨ãã話
27 æå°éã«å¶éãããã¤ã³ã¿ã¼ãã§ã¤ã¹ãæ¡å¼µã¡ã½ããã«ããæ©è½æ¡å¼µãã
æ¡å¼µã¡ã½ããã®åºæ¬çãªè©±ãæ¡å¼µã¡ã½ããã使ãã°ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã®æ§é ãå¤ãããã¨ãªããã¡ã½ãããè¨ãããã¨ãã§ããããã¨ãã話ã
28 æ§ç¯ãããåã«å¯¾ããæ¡å¼µã¡ã½ãããæ¤è¨ãããã¨
ãªãã¸ã§ã¯ãã¢ãã«ã«å¯¾ããå®è£ ããæ¡å¼µã¡ã½ããã®æ¡ç¨ãæ¤è¨ãã¦ããããã¼ã¿ã¢ãã«ã¨å®è£ ãåãåãããã¨ãã§ãããã使ãåãããããªã
LINQãæ±ãå¦ç
29 ã³ã¬ã¯ã·ã§ã³ãè¿ãã¡ã½ããã§ã¯ãªããã¤ãã¬ã¼ã¿ãè¿ãã¡ã½ããã¨ãããã¨
LINQã使ã£ããªããIEnumerableã§è¿ãã¾ããããã¨ãã話ãé å»¶è©ä¾¡ã使ã£ã¦ãã¡ã¢ãªã®æ¶è²»éã軽æ¸ããããã¨ãã話
30 ã«ã¼ããããã¯ã¨ãªæ§æã使ç¨ãããã¨
ã¯ã¨ãªæ§æã§ã³ã¬ã¯ã·ã§ã³ãå¦çããã°ãé å»¶è©ä¾¡ã使ããã®ã§ãããã©ã¼ãã³ã¹ãè¯ãã±ã¼ã¹ããããå ¨ã¦ããã¨ã¯è¨ãåããªãããåºæ¬çã«ã¯ã¯ã¨ãªå½¢å¼ã®ã»ããããã©ã¼ãã³ã¹ãè¯ãã
31 ã·ã¼ã±ã³ã¹ç¨ã®çµã¿åããå¯è½ãªAPIã使ãã
ã¤ãã¬ã¼ã¿ã¼ãè¿ãç´°ããã¡ã½ãããèªåã§ä½ããã¨ã§ãã«ã¹ã¿ã ãã¸ãã¯ãã·ã¼ã±ã³ã¹ã«å¯¾ãã¦çµã¿åããã¦å®è¡ã§ãããã·ã¼ã±ã³ã¹ã«é¢ãã¦è¤éãªå¦çãçµã¿ãããã¦è¡ãããå ´åã¯ããã®ææ³ãç¨ãããã
32 å復å¦çãActionãPredicateãFuncã¨åé¢ãã
è¡ãããããªã²ã¼ãã®å 容ã«åããã¦ãé©åãªããªã²ã¼ãåãå©ç¨ããçµã¿åããã¦ãå®è£ ããããã¨ãã話ãvoidã§åããããé¨åãtrue,falseã®å¤å®ããããé¨åããã¼ã¿ã«å¯¾ãã¦ãã£ã«ã¿ã¼ãã¦å¤ãè¿ããããã¸ãã¯ãªã©ãé©åãªããªã²ã¼ãåãé¸ã¼ã
33 è¦æ±ã«å¿ãã¦ã·ã¼ã±ã³ã¹ã®è¦ç´ ãçæããã
yield returnã使ã£ã¦ãå¿ è¦ãªã¿ã¤ãã³ã°ã§è¦ç´ ãçæããã ã¨ãã
34 颿°å¼æ°ã使ç¨ãã¦å½¹å²ãåå²ããã
ããªã²ã¼ãã使ã£ã¦ãå¤ããããªã²ã¼ããæ³¨å ¥ããããã«ãã¦ãæè»ã§æ¡å¼µæ§ã®ãããã¸ãã¯ã使ããã
35 æ¡å¼µã¡ã½ããããªã¼ãã¼ãã¼ãããªã
è¤æ°ã®åå空éã§ååã®æ¡å¼µã¡ã½ãããããå ´åãã©ã®ã¡ã½ãããå¼ã°ãããææ§ã«ãªã
36 ã¯ã¨ãªå¼ã¨ã¡ã½ããå¼ã³åºãã®å¯¾å¿ãææ¡ãã
ã©ã ãå¼ã®å¦çãããã·ã³ãã«ã§èªã¿ãããã¯ã¨ãªå¼ã¸ã®ç§»è¡ãæ¤è¨ããå ´åãã¡ã½ããã§ã¯ã©ã®ããã«å¦çãè¡ãããã®ããã¨ãããã¨ãææ¡ãã¦ããã
37 ã¯ã¨ãªã峿è©ä¾¡ã§ã¯ãªããé å»¶è©ä¾¡ãããã¨
é å»¶è©ä¾¡ã®åºæ¬çãªè©±ãã¤ãã¬ã¼ã¿ã¼ãåãåã£ã¦ãã¦ããã½ã¼ãã®ãããªå ¨ä»¶æä½ãå¿ è¦ãªæä½ãæ©ã段éã§è¡ããªãããã«æ°ãã¤ãã
38 ã¡ã½ãããããã©ã ãå¼ã使ç¨ãããã¨
èªãã§ããã¾ããèªåã®è¨èã§ã¡ãªãããè¨èªåãããã¨ãã§ãã¦ããªã
39 FuncãActionå ã§ã¯ä¾å¤ãã¹ãã¼ããªããã¨
ããªã²ã¼ãã®ä¸ã§ä¾å¤ãã¹ãã¼ããã¨ä¾å¤çºçæºå»ããããã¥ãããªããã·ã¼ã±ã³ã¹ã«å¯¾ãã¦ä¾å¤ãçºçããªããã¨ãä¿è¨¼ããå¾ã«ãããªã²ã¼ãã«å¤ã渡ãã¹ã
40 峿å®è¡ã¨é å»¶å®è¡ãåºå¥ãããã¨
ããããã®ç¹æ§ãçè§£ãã¦ãè©ä¾¡ãã¦ãã¢ã«ã´ãªãºã ã使ãããã¨
41 ã³ã¹ãã®ããããªã½ã¼ã¹ãç¶æãç¶ããªããã¨
ã¡ã½ãããå¤é¨ã®å¤æ°ãåç §ããå ´åããã®ã¡ã½ããå®è¡æã«ã¯ã¯ãã¼ã¸ã£ã«ãã£ã¦å°ç¨ã®ã¯ã©ã¹ãä½ããããé·ãé大ããã¡ã¢ãªãæ¶è²»ããã¯ãã¼ã¸ã£ãä½ããªãããã«æ°ãã¤ãããusingã使ã£ã¦åç §ã¹ã³ã¼ããçµããªã©è¡ããã¨ãnullãåç §å ã«ä»£å ¥ãã¦åç §ãåããªã©ã
42 IEnumerableã¨IQueryableãåºå¥ããã
ORMãå®è£ ãã¦ãããªããIQuerableã使ã£ã¦ãã¼ã¿ãã¼ã¹ã®ã½ã¼ã¹ã«LINQããã¯ã«ã¢ã¯ã»ã¹ã§ãã
43 ã¯ã¨ãªã«æå¾ ããæå³ãSIngle()ãFirts()ã使ç¨ãã¦è¡¨ç¾ãããã¨
Singleã¯ãã 1ã¤ã®è¦ç´ ãè¿ããã¨ãæå¾ ããã®ã«å¯¾ãã¦ãFirst()ã¯è¤æ°ã®è¦ç´ ã®ä¸ãã1ã¤ãåãåºãæä½
44ãæç¸ãã夿°ã夿´ããªããã¨
ã¯ãã¼ã¸ã£ã«æ¸¡ããã¦ãã夿°ããã¯ãã¼ã¸ã£ã®å¤ã§å¤æ´ããªããã¨ãäºæãã¬åä½ã«ã¤ãªããã
第5ç« ä¾å¤å¦ç
45 å¥ç´éåãä¾å¤ã¨ãã¦å ±åãããã¨
ä¾å¤å ±åã¯ã³ã¹ããé«ãã®ã§ãå¶å¾¡ããã¼ã¨ãã¦å©ç¨ããªããã¨ãæ£å¸¸å®è¡ãã¦ããªãã¨ãã«ã®ã¿å©ç¨ãããã¨ãä¾å¤ãã¹ãã¼ããå¯è½æ§ãããã¡ã½ããã使ããå ´åããã®ä¾å¤ãçºçããå¾ãæ¡ä»¶ããã§ãã¯ãããããªã¡ã½ãããç¨æããã¹ããä¾å¤ã¯ã©ã¹ã«å¦çãããã®ã§ã¯ãªãããã³ããªã³ã°ãã¦éç¥ããã
46 usingããã³tryâ¦finallyã使ç¨ãã¦ãªã½ã¼ã¹ã®å¾å¦çãè¡ã
ãdisopseã使ãããããusingã使ã£ã¦ãªã½ã¼ã¹ãéæ¾ãããéä¸ã§ä¾å¤ããåã£ã¦ãã確å®ã«Disposeãå©ç¨ã§ãããã³ã³ãã¤ã©ã§ã¯ãå é¨çã«ã¯ãtryâ¦finallyãç¨æããã
47 ã¢ããªã±ã¼ã·ã§ã³åºæã®ä¾å¤ã¯ã©ã¹ã使ãã
ãç¬èªã®ä¾å¤å¦çã¯ã©ã¹ãè¨ãããã¨ã§ãå¿ è¦ãªæ å ±ãããä¼ãããã¨ãã§ããã
48 ä¾å¤ãå¼·ãä¿è¨¼ãããã¨
ã¾ããåºæ¬çãªä¾å¤ä¿è¨¼ãæºãããã¨ã颿°å ã§ä¾å¤ãã¹ãã¼ããã¦å¦çãå¥ã®å ´æã«ç§»ã£ã¦ãããªã½ã¼ã¹ãªã¼ã¯ãè¡ãããªããã¨ãå¼·ãä¾å¤ä¿è¨¼ã§ã¯ãä¾å¤ã«ãã£ã¦å¦çãä¿®äºããå ´åã§ãããã°ã©ã ã®ç¶æ ãå¤åãããªããã¨ãç®æãããã¼ã¿å¤æ´ã¯ä¸è¨ã®ã¬ã¤ãã«å¾ãã£ã¦è¡ã
- 夿´å¯¾è±¡ã®ãã¼ã¿ã®ããã®é²å¾¡çã³ãã¼ãç¨æãã
- 使ããé²å¾¡çã³ãã¼ã«å¯¾ãã¦å¤ã夿´ãè¡ãããã®éãä¾å¤ã¹ãã¼ãããå¯è½æ§ã®ããå¦çãå«ã¾ãã
- ã³ãã¼ãå ã®ãã¼ã¿ã¨ç½®ãæããããã®å¦çã§ã¯ä¾å¤ãã¹ãã¼ã§ããªã
ããªã²ã¼ãããã³ããªã½ã¼ã¹è§£æ¾ãæ ãå¦çã§ã¯ãããªã²ã¼ãã«ç»é²ããã¡ã½ããã¯å®è¡ãããªãã
49 catchããã®åã¹ãã¼ãããä¾å¤ãã£ã«ã¿ã使ç¨ãã
catchå¥ã«æ¡ä»¶ãã¸ãã¯ã追å ããã®ã§ã¯ãªããwhere å¥ãæ¸ãã¦ã¹ãã¼ãããä¾å¤ãã£ã«ã¿ã追å ãããã¨ã§ãä¾å¤ãå®å ¨ã«å¶å¾¡ã§ããå ´åã«ã®ã¿catchå¥ãå®è¡ãããããã«ä¾å¤å¦çãå®è¡ã§ãããcatchå¥ã«ä¸åº¦å ¥ã£ã¦ãã¾ãã¨ãããã©ã¼ãã³ã¹ã«ããªãã®å½±é¿ãåºããä¾å¤ãã£ã«ã¿ã®å ´åããã£ã«ã¿ã§ä¾å¤ãå¦çã§ããªãå ´åã«ã¯ã¹ã¿ãã¯ã®å·»ãæ»ããæãããcatchå¥ãå®è¡ã§ããªããããããã©ã¼ãã³ã¹ã®æ¹åãè¦è¾¼ããã
50 ä¾å¤ãã£ã«ã¿ã®å¯ä½ç¨ãæ´»ç¨ãã
catchå¥ã«å ¥ãåã«ãä¾å¤ãã£ã«ã¿ã§ãã°ãè¨è¿°ãããããªã¡ã½ãããç¨æãããã¨ã§ãç¶²ç¾ çã«ä¾å¤ã®æ å ±ãåéãã¦ã好ããªããã«ãã®ã³ã°ãã§ãã