¹öÀüº° ÁÖ¿ä ±â´ÉÀ» ÀÌÇØÇÑ´Ù
Á¦³×¸¯, null °¡´É °ª ŸÀÔ, ÀÍ¸í ¸Þ¼µå, ÀÌÅÍ·¹ÀÌÅÍ, LINQ, ¶÷´Ù Ç¥Çö½Ä, À͸í ŸÀÔ, °´Ã¼ ÃʱâÈÀÚ, Äõ¸® Ç¥Çö½Ä, µ¿Àû ŸÀÌÇÎ, async/await, ºñµ¿±â ¸Þ¼µå, Ç¥Çö½Ä º»¹® ¸â¹ö, ÀÚµ¿ ±¸Çö ¼Ó¼º, ¹®ÀÚ¿ °ü·Ã ±â´É, Æ©ÇÃ, switch Ç¥Çö½Ä, ÆÐÅÏ ¸ÅĪ µî ´Ù¾çÇÑ ±â´ÉÀ» Çö½ÇÀûÀÎ ¿¹Á¦¿Í ÇÔ²² ¹è¿î´Ù.
¿¹Á¦ 200°³·Î »ý»ê¼ºÀ» ³ôÀÌ´Â C# ÀÛ¼º¹ýÀ» ¹è¿î´Ù
´Ü¼øÈ÷ C# °ø½Ä¹®¼¿¡ ÀÖÀ» ¹ýÇÑ »ç¿ë¹ý¸¸ ³ª¿ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, 200°³°¡ ³Ñ´Â ¿¹Á¦ ÄÚµå·Î ¹®Á¦¸¦ ÇØ°áÇÏ´Â ´Ù¾çÇÑ ÇعýÀ» ±¸Ã¼ÀûÀ¸·Î Á¦½ÃÇÑ´Ù. ±×¸®°í ÀÌ °úÁ¤À» Áö¼ÓÀûÀ¸·Î °ÅÄ¡¸é¼ C# Äڵ带 °£¼ÒÈÇÏ°í »ý»ê¼ºÀ» ³ôÀÌ´Â ¹æ¹ýÀ» üµæÇÒ ¼ö ÀÖ´Ù.
C# ³»ºÎ µ¿ÀÛ ¹æ½ÄÀ» ÀÌÇØÇÏ¿© C# Àü¹®°¡·Î ¹ßµ¸¿òÇÏÀÚ!
ÀÌ Ã¥Àº C#ÀÇ ³»ºÎ µ¿ÀÛ ¹æ½ÄÀ» Á¸ ½ºÅ¶¸¸ÀÇ °æÇè°ú ¸Å·ÂÀûÀÎ ÅëÂû·Î ´ã¾Æ³Â´Ù. À̸¦ ÅëÇØ C#ÀÇ ¸é¸éÀ» µé¿©´Ùº¸°í ¼û°ÜÁø Æ®¸¯À» ¹ß°ßÇÏ¿© C#À» Á» ´õ C#´ä°Ô ¼³°èÇÏ°í ÇÁ·Î±×·¡¹Ö ±â¼úÀ» ±Ø´ëÈÇϵµ·Ï µ½´Â´Ù.
±¸±ÛÀÇ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î·Î ·±´ø »ç¹«¼Ò¿¡¼ ±Ù¹«ÇÏ°í ÀÖ´Ù. ´ã´ç ¾÷¹«´Â ±¸±Û Ŭ¶ó¿ìµå Ç÷§Æû¿ë .NET Ŭ¶óÀ̾ðÆ® ¶óÀ̺귯¸®¸¦ °³¹ßÇÏ´Â °ÍÀε¥, ÀÌ´Â ±¸±Û°ú C#¿¡ ´ëÇÑ ¿Á¤À» µ¿½Ã¿¡ ½ñ¾ÆºÎÀ» ¼ö ÀÖ´Â ÀÏÀÌ´Ù. C# Ç¥ÁØȸ¦ ´ã´çÇÏ´Â ECMA ±â¼ú ±×·ìÀÇ ¼ÒÀåÀ̸ç .NET ÆÄ¿îµ¥À̼ǿ¡¼ ±¸±ÛÀ» ´ëÇ¥ÇÏ°í ÀÖ´Ù. °³¹ßÀÚ¸¦ À§ÇÑ ÁúÀÇÀÀ´ä »çÀÌÆ®ÀÎ ½ºÅà ¿À¹öÇ÷Î(Stack Overflow)¿¡ ÀÚÁÖ Âü¿©ÇÏ¿© À̸¦ ÅëÇØ Àß ¾Ë·ÁÁ® ÀÖ´Ù. ±× ¿Ü¿¡µµ ÄÜÆÛ·±½º¿Í »ç¿ëÀÚ ±×·ì, ºí·Î±×¿¡¼ ¿¬¼³ÇÏ°í ±ÛÀ» ¾²´Â °ÍÀ» Áñ±ä´Ù. ÀÌ ¸ðµç °ÍÀÇ °øÅëÁ¡Àº ´Ù¸¥ °³¹ßÀÚ¿Í ÇÔ²²ÇÏ´Â ¹æ¹ýÀ̶ó´Â °ÍÀ̸ç, À̸¦ ÅëÇØ ¸¹Àº °ÍÀ» ¹è¿î´Ù.
1ºÎ C#¿¡ ´ëÇؼ
1Àå C# °³¹ßÀÚ·Î »ì¾Æ³²±â
1.1 ÁøÈÇÏ´Â ¾ð¾î
__1.1.1 ¾î¶² ±Ô¸ðÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡µµ À¯¿ëÇÑ Å¸ÀÔ ½Ã½ºÅÛ
__1.1.2 ´õ¿í °£°áÇÑ ÄÚµå ÀÛ¼º
__1.1.3 LINQ¸¦ ÀÌ¿ëÇÑ ´Ü¼øÇÑ µ¥ÀÌÅÍ »ç¿ë
__1.1.4 ºñµ¿±â
__1.1.5 È¿À²°ú º¹À⼺ »çÀÌÀÇ ±ÕÇü
__1.1.6 Äè¼Ó ÁøÈ: ºÎ ¹öÀü µµÀÔ
1.2 ÁøÈÇÏ´Â Ç÷§Æû
1.3 ÁøÈÇÏ´Â Ä¿¹Â´ÏƼ
1.4 ÁøÈÇϴ å
__1.4.1 ÀÌ Ã¥ÀÌ ´Ù·ç´Â ¹üÀ§
__1.4.2 Noda TimeÀ» ÀÌ¿ëÇÏ´Â ¿¹Á¦
__1.4.3 ¿ë¾î ¼±ÅÃ
1.5 ¿ä¾à
2ºÎ C# 2-5
2Àå C# 2
2.1 Á¦³×¸¯
__2.1.1 ¿¹Á¦¸¦ ÅëÇÑ ¼Ò°³: Á¦³×¸¯ ÀÌÀüÀÇ Ä÷º¼Ç
__2.1.2 ½Ã°£À» Àý¾àÇÏ´Â Á¦³×¸¯
__2.1.3 Á¦³×¸¯ÀÌ µÉ ¼ö ÀÖ´Â °Í
__2.1.4 ¸Þ¼µåÀÇ Å¸ÀÔ Àμö¿¡ ´ëÇÑ Å¸ÀÔ Ãß·Ð
__2.1.5 ŸÀÔ Á¦¾à Á¶°Ç
__2.1.6 default¿Í typeof ¿¬»êÀÚ
__2.1.7 Á¦³×¸¯ ŸÀÔÀÇ ÃʱâÈ¿Í »óÅÂ
2.2 null °¡´É °ª ŸÀÔ
__2.2.1 ¸ñÀû: Á¤º¸°¡ ¾øÀ½À» ³ªÅ¸³»´Â ¹æ¹ý
__2.2.2 CLR°ú ÇÁ·¹ÀÓ¿öÅ©ÀÇ Áö¿ø: Nullable ±¸Á¶Ã¼
__2.2.3 ¾ð¾î Áö¿ø
2.3 µ¨¸®°ÔÀÌÆ® ÀÛ¼º ´Ü¼øÈ
__2.3.1 ¸Þ¼µå ±×·ì º¯È¯
__2.3.2 ÀÍ¸í ¸Þ¼µå
__2.3.3 µ¨¸®°ÔÀÌÆ®ÀÇ È£È¯¼º
2.4 ÀÌÅÍ·¹ÀÌÅÍ
__2.4.1 ÀÌÅÍ·¹ÀÌÅÍ ¼Ò°³
__2.4.2 Áö¿¬ ¼öÇà
__2.4.3 yield ¹®ÀÇ Æò°¡
__2.4.4 Áö¿¬ ¼öÇàÀÇ Á߿伺
__2.4.5 finally ºí·ÏÀÇ Æò°¡
__2.4.6 finally ó¸®ÀÇ Á߿伺
__2.4.7 ±¸Çö ¹æ½Ä¿¡ ´ëÇÑ ¹Ø±×¸²
2.5 ºÎ°¡ ±â´É
__2.5.1 partial ŸÀÔ
__2.5.2 Á¤Àû Ŭ·¡½º
__2.5.3 ¼Ó¼º Á¢±ÙÀÚ¿¡ ´ëÇØ º°µµÀÇ Á¢±Ù ÇÑÁ¤ÀÚ ÁöÁ¤
__2.5.4 ³×ÀÓ½ºÆäÀ̽º º°Äª
__2.5.5 pragma Áö½ÃÀÚ
__2.5.6 °íÁ¤ ±æÀÌ ¹öÆÛ
__2.5.7 InternalsVisibleTo
2.6 ¿ä¾à
3Àå C# 3: LINQ ±×¸®°í ÇÔ²² Á¦°øµÇ´Â ¸ðµç °Í
3.1 ÀÚµ¿ ±¸Çö ¼Ó¼º
3.2 ¾Ï½ÃÀû ŸÀÌÇÎ
__3.2.1 ŸÀÌÇÎ °ü·Ã ¿ë¾î
__3.2.2 Áö¿ª º¯¼ö¿¡ ´ëÇÑ ¾Ï½ÃÀû ŸÀÌÇÎ(var)
__3.2.3 ¹è¿¿¡ ´ëÇÑ ¾Ï½ÃÀû ŸÀÔ ÁöÁ¤
3.3 °´Ã¼ ÃʱâÈ ±¸¹®°ú Ä÷º¼Ç ÃʱâÈ ±¸¹®
__3.3.1 °´Ã¼ ÃʱâÈ ±¸¹®°ú Ä÷º¼Ç ÃʱâÈ ±¸¹® ¼Ò°³
__3.3.2 °´Ã¼ ÃʱâÈ ±¸¹®
__3.3.3 Ä÷º¼Ç ÃʱâÈ ±¸¹®
__3.3.4 ´ÜÀÏ Ç¥Çö½ÄÀ¸·Î Ãʱâȸ¦ ¼öÇàÇÏ´Â ¹æ½ÄÀÇ ÀÌÁ¡
3.4 À͸í ŸÀÔ
__3.4.1 ¹®¹ý°ú ±âº»ÀûÀÎ µ¿ÀÛ ¹æ½Ä
__3.4.2 ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Å¸ÀÔ
__3.4.3 ÇÑ°è
3.5 ¶÷´Ù Ç¥Çö½Ä
__3.5.1 ¶÷´Ù Ç¥Çö½Ä ¹®¹ý
__3.5.2 º¯¼ö ĸó
__3.5.3 Ç¥Çö½Ä Æ®¸®
3.6 È®Àå ¸Þ¼µå
__3.6.1 È®Àå ¸Þ¼µåÀÇ ¼±¾ð
__3.6.2 È®Àå ¸Þ¼µåÀÇ ¼öÇà
__3.6.3 ¿¬¼âÀû ¸Þ¼µå È£Ãâ
3.7 Äõ¸® Ç¥Çö½Ä
__3.7.1 Äõ¸® Ç¥Çö½ÄÀº C#¿¡¼ C#À¸·ÎÀÇ º¯È¯
__3.7.2 ¹üÀ§ º¯¼ö¿Í Åõ¸í ±¸ºÐÀÚ
__3.7.3 LINQ¿¡ ¾î¶² ±¸¹®À» »ç¿ëÇÒÁö ¾ðÁ¦ ÆÇ´ÜÇÒ °ÍÀΰ¡?
3.8 ÃÖÁ¾ °á°ú¹°: LINQ
3.9 ¿ä¾à
4Àå C# 4: »óÈ£ ¿î¿ë¼ºÀÇ °³¼±
4.1 µ¿Àû ŸÀÌÇÎ
__4.1.1 µ¿Àû ŸÀÌÇÎ ¼Ò°³
__4.1.2 ¸®Ç÷º¼ÇÀ» ³Ñ¾î¼± µ¿Àû ŸÀÌÇÎÀÇ µ¿ÀÛ ¹æ½Ä
__4.1.3 ³»ºÎ µ¿ÀÛ¿¡ ´ëÇÑ °³¿ä
__4.1.4 µ¿Àû ŸÀÌÇÎÀÇ ÇÑ°è¿Í ³î¶ó¿î Á¡
__4.1.5 µ¿Àû ŸÀÔ »ç¿ë °¡À̵å
4.2 ¼±ÅÃÀû ¸Å°³º¯¼ö¿Í ¸í¸íµÈ Àμö
__4.2.1 ±âº»°ªÀ» °¡Áø ¸Å°³º¯¼ö¿Í À̸§À» °¡Áø Àμö
__4.2.2 ¸Þ¼µå È£ÃâÀÇ ÀÇ¹Ì ±ÔÁ¤
__4.2.3 ¹öÀü °ü¸®¿¡ ¹ÌÄ¡´Â ¿µÇâ
4.3 COM »óÈ£ ¿î¿ë¼ºÀÇ °³¼±
__4.3.1 Primary Interop Assembly ¸µÅ©
__4.3.2 COM¿¡¼ ¼±ÅÃÀû ¸Å°³º¯¼ö È°¿ë
__4.3.3 ¸í¸íµÈ Àε¦¼
4.4 Á¦³×¸¯ º¯¼º
__4.4.1 º¯¼º¿¡ ´ëÇÑ °£´ÜÇÑ »ç¿ë ¿¹
__4.4.2 ÀÎÅÍÆäÀ̽º¿Í µ¨¸®°ÔÀÌÆ® ¼±¾ð ½Ã º¯¼ºÀ» ÁöÁ¤ÇÏ´Â ¹®¹ý
__4.4.3 º¯¼ºÀÇ Á¦¾à »çÇ×
__4.4.4 Á¦³×¸¯ º¯¼º¿¡ ´ëÇÑ ½Ç¿ëÀû »ç·Ê
4.5 ¿ä¾à
5Àå ºñµ¿±â ÄÚµå ÀÛ¼º
5.1 ºñµ¿±â ÇÔ¼ö ¼Ò°³
__5.1.1 ºñµ¿±â¿ÍÀÇ Ã¹ ¸¸³²
__5.1.2 ù ¹ø° ¿¹Á¦ ÂÉ°³±â
5.2 ºñµ¿±â¿¡ ´ëÇØ
__5.2.1 ºñµ¿±â ¼öÇàÀÇ ±âº»
__5.2.2 µ¿±âÈ ÄÁÅؽºÆ®
__5.2.3 ºñµ¿±â ¸Þ¼µå ¸ðµ¨¸µ
5.3 ºñµ¿±â ¸Þ¼µå ¼±¾ð
__5.3.1 ºñµ¿±â ¸Þ¼µåÀÇ ¹Ýȯ ŸÀÔ
__5.3.2 ºñµ¿±â ¸Þ¼µåÀÇ ¸Å°³º¯¼ö
5.4 await Ç¥Çö½Ä
__5.4.1 ´ë±â °¡´É ÆÐÅÏ
__5.4.2 ´ë±â Ç¥Çö½ÄÀÇ Á¦¾à »çÇ×
5.5 ¹Ýȯ°ªÀ» µÑ·¯½Î°í ÀÖ´Â ºÎºÐ
5.6 ºñµ¿±â ¸Þ¼µåÀÇ È帧
__5.6.1 ¹«¾ùÀ» ¾ðÁ¦±îÁö ´ë±âÇϴ°¡?
__5.6.2 ´ë±â Ç¥Çö½ÄÀÇ Æò°¡
__5.6.3 ´ë±â °¡´É ÆÐÅÏ ¸â¹öÀÇ ÀÌ¿ë
__5.6.4 ¿¹¿Ü ¶â¾îº¸±â
__5.6.5 ¸Þ¼µå ¿Ï·á
5.7 ºñµ¿±â À͸í ÇÔ¼ö
5.8 C# 7¿¡ µµÀÔµÈ »ç¿ëÀÚ Á¤ÀÇ Å½ºÅ© ŸÀÔ
__5.8.1 99.9%ÀÇ »ç¿ë ¿¹: ValueTask
__5.8.2 ³ª¸ÓÁö 0.1%ÀÇ »ç¿ë ¿¹: »ç¿ëÀÚ Á¤ÀÇ Å½ºÅ© ŸÀÔ ÀÛ¼º
5.9 C# 7.1¿¡¼ Áö¿øÇÏ´Â ºñµ¿±â Main ¸Þ¼µå
5.10 È°¿ë ÆÁ
__5.10.1 ConfigureAwait·Î ÄÁÅؽºÆ®¸¦ ÀúÀåÇÏ´Â °ÍÀ» ÇÇÇ϶ó
__5.10.2 ¿©·¯ ÀÛ¾÷ÀÌ µ¶¸³ÀûÀ¸·Î ¼öÇàµÉ ¼ö ÀÖµµ·Ï ÀÛ¼ºÇÏ°í À̸¦ º´·ÄÀûÀ¸·Î ¼öÇàÇ϶ó
__5.10.3 µ¿±â ÄÚµå¿Í ºñµ¿±â Äڵ带 ¼¯¾î ¾²Áö ¸¶¶ó
__5.10.4 Ãë¼Ò°¡ °¡´ÉÇϵµ·Ï Äڵ带 ÀÛ¼ºÇ϶ó
__5.10.5 ºñµ¿±â¼ºÀ» Å×½ºÆ®Ç϶ó
5.11 ¿ä¾à
6Àå ºñµ¿±â ±¸Çö
6.1 ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ÄÚµåÀÇ ±¸Á¶
__6.1.1 ½ºÅÓ ¸Þ¼µå: »çÀü Áغñ¿Í ù°ÉÀ½ ¶¼±â
__6.1.2 »óÅ ¸Ó½ÅÀÇ ±¸Á¶
__6.1.3 MoveNext( ) ¸Þ¼µå(°í¼öÁØ)
__6.1.4 SetStateMachine ¸Þ¼µå¿Í »óÅ ¸Ó½Å ¹Ú½ÌÀÇ Á¶È
6.2 MoveNext( )ÀÇ °£´ÜÇÑ ±¸Çö
__6.2.1 ±¸Ã¼ÀûÀÎ ¿¹
__6.2.2 MoveNext( ) ¸Þ¼µåÀÇ ÀϹÝÀûÀÎ ±¸Á¶
__6.2.3 ´ë±â Ç¥Çö½Ä¿¡ ´ëÇÑ °íÂû
6.3 Á¦¾î È帧ÀÌ MoveNext( )¿¡ ¹ÌÄ¡´Â ¿µÇâ
__6.3.1 ´ë±â Ç¥Çö½Ä »çÀÌÀÇ Á¦¾î È帧Àº ´Ü¼øÇÏ´Ù
__6.3.2 ·çÇÁ ³»¿¡ ´ë±â Ç¥Çö½ÄÀÌ ÀÖ´Â °æ¿ì
__6.3.3 try/finally ºí·Ï ³»¿¡ ´ë±â Ç¥Çö½ÄÀÌ ÀÖ´Â °æ¿ì
6.4 ½ÇÇà ÄÁÅؽºÆ®¿Í È帧
6.5 »ç¿ëÀÚ Á¤ÀÇ Å½ºÅ© ŸÀÔ Àç°ËÅä
6.6 ¿ä¾à
7Àå C# 5ÀÇ º¸³Ê½º ±â´É
7.1 foreach ·çÇÁ ³»¿¡¼ º¯¼ö ĸó
7.2 È£ÃâÀÚ Á¤º¸ Ư¼º
__7.2.1 ±âº»ÀûÀÎ µ¿ÀÛ
__7.2.2 ·Î±ë
__7.2.3 INotifyPropertyChanged ±¸Çö ´Ü¼øÈ
__7.2.4 È£ÃâÀÚ Á¤º¸ Ư¼ºÀÇ Áö¿±Àû ƯÀ̼º
__7.2.5 ¿¹Àü ¹öÀüÀÇ .NET¿¡¼ È£ÃâÀÚ Á¤º¸ Ư¼ºÀ» »ç¿ëÇÏ´Â ¹æ¹ý
7.3 ¿ä¾à
3ºÎ C# 6
8Àå ¸Å¿ì ¼¼·ÃµÈ ¼Ó¼º°ú Ç¥Çö½Ä º»¹® ¸â¹ö
8.1 ¼Ó¼ºÀÇ °£´ÜÇÑ ¿ª»ç
8.2 ¾÷±×·¹À̵åµÈ ÀÚµ¿ ±¸Çö ¼Ó¼º ±â´É
__8.2.1 Àбâ Àü¿ë ÀÚµ¿ ±¸Çö ¼Ó¼º
__8.2.2 ÀÚµ¿ ±¸Çö ¼Ó¼º ÃʱâÈ
__8.2.3 ±¸Á¶Ã¼ ³»ÀÇ ÀÚµ¿ ±¸Çö ¼Ó¼º
8.3 Ç¥Çö½Ä º»¹® ¸â¹ö
__8.3.1 °è»êÀÌ ÇÊ¿äÇÑ Àбâ Àü¿ë ¼Ó¼ºÀ» ´õ °£´ÜÈ÷ ±¸ÇöÇÏ´Â ¹æ¹ý
__8.3.2 Ç¥Çö½Ä º»¹® ¸Þ¼µå, Ç¥Çö½Ä º»¹® Àε¦¼, Ç¥Çö½Ä º»¹® ¿¬»êÀÚ
__8.3.3 C# 6ÀÇ Ç¥Çö½Ä º»¹® ¸â¹ö°¡ °¡Áö´Â Á¦¾à »çÇ×
__8.3.4 Ç¥Çö½Ä º»¹® ¸â¹ö »ç¿ë Áöħ
8.4 ¿ä¾à
9Àå ¹®ÀÚ¿ °ü·Ã ±â´É
9.1 NET¿¡¼ ¹®ÀÚ¿ Æ÷¸ÅÆÃÀ» ¼öÇàÇÏ´Â ¹æ¹ý ¿ä¾à
__9.1.1 ´Ü¼ø ¹®ÀÚ¿ Æ÷¸ÅÆÃ
__9.1.2 Æ÷¸Ë ¹®ÀÚ¿À» ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ Æ÷¸ÅÆà ¼öÇàÇϱâ
__9.1.3 ÇöÁöÈ
9.2 º¸°£ ¹®ÀÚ¿ ¸®ÅÍ·² ¼Ò°³
__9.2.1 °£´ÜÇÑ º¸°£
__9.2.2 º¸°£ ¹®ÀÚ¿ ¸®ÅÍ·² ³»¿¡¼ÀÇ Æ÷¸Ë ¹®ÀÚ¿
__9.2.3 º¸°£ ÃàÀÚ ¹®ÀÚ¿ ¸®ÅÍ·²
__9.2.4 ÄÄÆÄÀÏ·¯°¡ º¸°£ ¹®ÀÚ¿ ¸®ÅÍ·²À» ´Ù·ç´Â ¹æ¹ý(ù ¹ø°)
9.3 FormattableStringÀ» »ç¿ëÇÑ ÇöÁöÈ
__9.3.1 ÄÄÆÄÀÏ·¯°¡ º¸°£ ¹®ÀÚ¿ ¸®ÅÍ·²À» ´Ù·ç´Â ¹æ¹ý(µÎ ¹ø°)
__9.3.2 ÄÃó¸¦ ÁöÁ¤ÇÏ¿© FormattableString Æ÷¸ÅÆÃÇϱâ
__9.3.3 FormattableStringÀÇ ´Ù¸¥ »ç¿ë ¿¹
__9.3.4 ÀÌÀü ¹öÀüÀÇ .NET¿¡¼ FormattableStringÀ» »ç¿ëÇÏ·Á¸é
9.4 È°¿ë¹ý, »ç¿ë Áöħ, ÇÑ°è
__9.4.1 °³¹ßÀÚ¿Í ÄÄÇ»ÅÍ, ÇÏÁö¸¸ ÃÖÁ¾ »ç¿ëÀÚ´Â ¾Æ´Ñ¡¦
__9.4.2 º¸°£ ¹®ÀÚ¿ ¸®ÅÍ·²ÀÇ ¾ö°ÝÇÑ Á¦¾à
__9.4.3 ÇÒ ¼ö ÀÖÁö¸¸ Çؼ´Â ¾È µÉ ¶§
9.5 nameof·Î ½Äº°ÀÚ¿¡ Á¢±Ù
__9.5.1 nameofÀÇ Ã¹ ¹ø° »ç¿ë ¿¹
__9.5.2 nameofÀÇ ÀϹÝÀûÀÎ »ç¿ë ¿¹
__9.5.3 nameof¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÒ Æ®¸¯°ú ÇÔÁ¤
9.6 ¿ä¾à
10Àå °£°áÇÑ ÄÚµå ÀÛ¼ºÀ» À§ÇÑ ´Ù¾çÇÑ ±â´É
10.1 using static Áö½ÃÀÚ
__10.1.1 Á¤Àû ¸â¹ö ÀÓÆ÷Æ®
__10.1.2 È®Àå ¸Þ¼µå¿Í using static
10.2 °´Ã¼ ÃʱâÈÀÚ¿Í Ä÷º¼Ç ÃʱâÈÀÚÀÇ °³¼±
__10.2.1 °´Ã¼ ÃʱâÈÀÚ ³»¿¡¼ÀÇ Àε¦¼
__10.2.2 Ä÷º¼Ç ÃʱâÈÀÚ ³»¿¡¼ È®Àå ¸Þ¼µå »ç¿ë
__10.2.3 Å×½ºÆ® ÄÚµå¿Í Á¦Ç° ÄÚµå
10.3 null Á¶°Ç ¿¬»êÀÚ
__10.3.1 °£´ÜÇÏ°í ¾ÈÀüÇÑ ¼Ó¼º ¿ªÂüÁ¶
__10.3.2 null Á¶°Ç ¿¬»êÀÚ¿¡ ´ëÇÑ ¼¼ºÎ »çÇ×
__10.3.3 ºÒ ºñ±³ ó¸®
__10.3.4 Àε¦¼¿Í null Á¶°Ç ¿¬»êÀÚ
__10.3.5 null Á¶°Ç ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¾÷À» È¿À²ÀûÀ¸·Î ¼öÇàÇÏ´Â ¹æ¹ý
__10.3.6 null Á¶°Ç ¿¬»êÀÚÀÇ ÇÑ°è
10.4 ¿¹¿Ü ÇÊÅÍ
__10.4.1 ¿¹¿Ü ÇÊÅÍÀÇ ¹®¹ý°ú ÀǹÌ
__10.4.2 ÀÛ¾÷ Àç½Ãµµ
__10.4.3 ºÎ¼öÀûÀ¸·Î ·Î±ë ¼öÇà
__10.4.4 °³º°ÀûÀÌ°í ±¸Ã¼ÀûÀÎ ¿¹¿Ü ÇÊÅÍ ±¸¼º
__10.4.5 ´Ü¼øÈ÷ throw¸¸ ¾²´Â °ÍÀº ¾î¶²°¡?
10.5 ¿ä¾à
4ºÎ C# 7 ±×¸®°í ±× ÀÌÈÄ
11Àå Æ©ÇÃÀ» ÀÌ¿ëÇÑ ±¸¼º
11.1 Æ©ÇÃ ¼Ò°³
11.2 Æ©Çà ¸®ÅÍ·²°ú Æ©Çà ŸÀÔ
__11.2.1 ¹®¹ý
__11.2.2 Æ©Çà ¸®ÅÍ·²¿¡¼ Ãß·ÐµÈ ¿ä¼Ò À̸§(C# 7.1)
__11.2.3 ¿©·¯ º¯¼ö¸¦ ´ãÀ» ¼ö ÀÖ´Â °¡¹æó·³ Æ©Çà Ȱ¿ë
11.3 Æ©Çà ŸÀÔ°ú º¯È¯
__11.3.1 Æ©Çà ¸®ÅÍ·²ÀÇ Å¸ÀÔ
__11.3.2 Æ©Çà ¸®ÅÍ·²À» Æ©Çà ŸÀÔÀ¸·Î º¯È¯
__11.3.3 Æ©Çà ŸÀÔ °£ º¯È¯
__11.3.4 Æ©Çà º¯È¯ÀÇ »ç¿ë
__11.3.5 »ó¼Ó ½Ã Æ©ÇÃÀÇ ¿ä¼Ò À̸§ È®ÀÎ
__11.3.6 °°À½ ¿¬»êÀÚ¿Í °°Áö ¾ÊÀ½ ¿¬»êÀÚ(C# 7.3)
11.4 CLR ¼öÁØ¿¡¼ÀÇ Æ©ÇÃ
__11.4.1 System.ValueTuple<¡¦> ¼Ò°³
__11.4.2 Æ©Çà ¿ä¼Ò À̸§ ó¸®
__11.4.3 Æ©Çà º¯È¯ ±¸Çö
__11.4.4 Æ©ÇÃÀÇ ¹®ÀÚ¿ Ç¥Çö
__11.4.5 ÀϹÝÀûÀÎ µ¿Àϼº ºñ±³¿Í ¼øÂ÷¼º ºñ±³
__11.4.6 ±¸Á¶Àû µ¿Àϼº°ú ¼øÂ÷¼º ºñ±³
__11.4.7 ¿úÇà ƩÇðú °Å´ëÇÑ Æ©ÇÃ
__11.4.8 Á¦³×¸¯ÀÌ ¾Æ´Ñ ValueTuple ±¸Á¶Ã¼
__11.4.9 È®Àå ¸Þ¼µå
11.5 Æ©ÇÃÀÇ ´ëüÁ¦
__11.5.1 System.Tuple<¡¦>
__11.5.2 À͸í ŸÀÔ
__11.5.3 ¸í¸íµÈ ŸÀÔ
11.6 ¿ëµµ ¹× ±Ç°í »çÇ×
__11.6.1 ºñ°ø°³ API¿Í ½±°Ô º¯°æµÇ´Â Äڵ忡¼ »ç¿ë
__11.6.2 Áö¿ª º¯¼ö
__11.6.3 Çʵå
__11.6.4 Æ©Çðú µ¿Àû ŸÀÌÇÎÀº Àß ¾î¿ï¸®Áö ¾Ê´Â´Ù
11.7 ¿ä¾à
12Àå ºÐÇØ¿Í ÆÐÅÏ ¸ÅĪ
12.1 Æ©Çà ºÐÇØ
__12.1.1 »õ·Î¿î º¯¼ö·Î ºÐÇØ
__12.1.2 ºÐÇØ ½Ã ±âÁ¸ º¯¼ö³ª ¼Ó¼º¿¡ °ªÀ» ÇÒ´ç
__12.1.3 Æ©Çà ¸®ÅÍ·²ÀÇ ºÐÇØ¿¡ ´ëÇÑ ¼¼ºÎ »çÇ×
12.2 Æ©ÇÃÀÌ ¾Æ´Ñ ŸÀÔ¿¡ ´ëÇÑ ºÐÇØ
__12.2.1 ÀνºÅϽº ºÐÇØ ¸Þ¼µå
__12.2.2 È®Àå ºÐÇØ ¸Þ¼µå¿Í ¿À¹ö·Îµù
__12.2.3 ÄÄÆÄÀÏ·¯°¡ Deconstruct È£ÃâÀ» ó¸®ÇÏ´Â ¹æ¹ý
12.3 ÆÐÅÏ ¸ÅĪ ¼Ò°³
12.4 C# 7.0¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÆÐÅÏ
__12.4.1 »ó¼ö ÆÐÅÏ
__12.4.2 ŸÀÔ ÆÐÅÏ
__12.4.3 var ÆÐÅÏ
12.5 is ¿¬»êÀÚ¿Í ÇÔ²² ÆÐÅÏ »ç¿ë
12.6 switch ¹®¿¡¼ ÆÐÅÏ »ç¿ë
__12.6.1 °¡µå Àý
__12.6.2 case ·¹ÀÌºí¿¡¼ »ý¼ºÇÑ ÆÐÅÏ º¯¼öÀÇ »ç¿ë ¹üÀ§
__12.6.3 ÆÐÅÏÀ» »ç¿ëÇÏ´Â switch ¹®ÀÇ Æò°¡ ¼ø¼
12.7 È°¿ë ½Ã °í·Á »çÇ×
__12.7.1 ºÐÇظ¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì
__12.7.2 ÆÐÅÏ ¸ÅĪÀ» »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì
12.8 ¿ä¾à
13Àå ÂüÁ¶ Àü´ÞÀ» ÅëÇÑ È¿À² °³¼±
13.1 ¿äÁ¡ ÀçÈ®ÀÎ: ref¿¡ ´ëÇؼ ¹«¾ùÀ» ¾Ë°í Àִ°¡?
13.2 ÂüÁ¶ Áö¿ª º¯¼ö¿Í ÂüÁ¶ ¹Ýȯ
__13.2.1 ÂüÁ¶ Áö¿ª º¯¼ö
__13.2.2 ÂüÁ¶ ¹Ýȯ
__13.2.3 Á¶°Ç ?: ¿¬»êÀÚ¿Í ÂüÁ¶ º¯¼ö(C# 7.2)
__13.2.4 Àбâ Àü¿ë ÂüÁ¶(C# 7.2)
13.3 in ¸Å°³º¯¼ö(C# 7.2)
__13.3.1 ȣȯ¼ºÀ» À§ÇÑ °í·Á »çÇ×
__13.3.2 in ¸Å°³º¯¼öÀÇ ³î¶ó¿î º¯°æ °¡´É¼º: ¿ÜºÎ¿¡¼ÀÇ º¯°æ
__13.3.3 in ¸Å°³º¯¼öÀÇ ¿À¹ö·Îµù
__13.3.4 in ¸Å°³º¯¼öÀÇ »ç¿ë Áöħ
13.4 ±¸Á¶Ã¼¸¦ Àбâ Àü¿ëÀ¸·Î ¼±¾ð(C# 7.2)
__13.4.1 ¹è°æ: Àбâ Àü¿ë º¯¼ö¸¦ »ç¿ëÇÑ ¾Ï½ÃÀû º¹»ç
__13.4.2 ±¸Á¶Ã¼¿¡ readonly ÇÑÁ¤ÀÚ »ç¿ë
__13.4.3 XML Á÷·ÄÈ´Â ¾Ï½ÃÀûÀ¸·Î ÀÐ°í ¾²´Â ÀÛ¾÷
13.5 ÂüÁ¶ ¸Å°³º¯¼ö³ª in ¸Å°³º¯¼ö¸¦ ÃëÇÏ´Â È®Àå ¸Þ¼µå
__13.5.1 º¹»ç¸¦ ÇÇÇϱâ À§ÇØ È®Àå ¸Þ¼µå¿¡¼ ÂüÁ¶ ¸Å°³º¯¼ö³ª in ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ý
__13.5.2 È®Àå ¸Þ¼µå¿¡¼ ref¸¦ »ç¿ëÇÒ ¶§ÀÇ Á¦ÇÑ »çÇ×
13.6 À¯»ç ÂüÁ¶ ±¸Á¶Ã¼(C# 7.2)
__13.6.1 À¯»ç ÂüÁ¶ ±¸Á¶Ã¼ÀÇ ±ÔÄ¢
__13.6.2 Span¿Í stackalloc
__13.6.3 IL ¼öÁØ¿¡¼ÀÇ À¯»ç ÂüÁ¶ ±¸Á¶Ã¼
13.7 ¿ä¾à
14Àå C# 7À» ÀÌ¿ëÇÑ °£°áÇÑ ÄÚµå ÀÛ¼º
14.1 Áö¿ª ¸Þ¼µå
__14.1.1 Áö¿ª ¸Þ¼µå ³»¿¡¼ÀÇ º¯¼ö »ç¿ë
__14.1.2 Áö¿ª ¸Þ¼µåÀÇ ±¸Çö
__14.1.3 »ç¿ë Áöħ
14.2 out º¯¼ö
__14.2.1 out ¸Å°³º¯¼ö »ç¿ë ½Ã º¯¼ö ¼±¾ðÀ» ÀζóÀÎÈ
__14.2.2 C# 7.3ºÎÅÍ out º¯¼ö¿Í ÆÐÅÏ º¯¼ö¿¡ ´ëÇÑ Á¦¾àÀÌ »ç¶óÁø ºÎºÐ
14.3 ¼ýÀÚ ¸®ÅÍ·² °³¼±
__14.3.1 ÀÌÁø Á¤¼ö ¸®ÅÍ·²
__14.3.2 ¹ØÁÙ ±¸ºÐÀÚ
14.4 throw Ç¥Çö½Ä
14.5 default ¸®ÅÍ·²(C# 7.1)
14.6 ¸í¸íµÈ ÀμöÀÇ »ç¿ë À§Ä¡ Á¦¾à ¿ÏÈ(C# 7.2)
14.7 private protected Á¢±Ù ÇÑÁ¤ÀÚ(C# 7.2)
14.8 C# 7.3ÀÇ »ç¼ÒÇÑ °³¼± »çÇ×
__14.8.1 Á¦³×¸¯ ŸÀÔ Á¦¾à Á¶°Ç
__14.8.2 ¿À¹ö·Îµå Çؼ®ÀÇ °³¼±
__14.8.3 ÀÚµ¿ ±¸Çö ¼Ó¼ºÀ» Áö¿øÇϱâ À§ÇÑ Çʵ忡 ´ëÇÑ Æ¯¼º
14.9 ¿ä¾à
15Àå C# 8 ±×¸®°í ±× ÀÌÈÄ
15.1 null °¡´É ÂüÁ¶ ŸÀÔ
__15.1.1 null °¡´É ÂüÁ¶ ŸÀÔÀº ¾î¶² ¹®Á¦¸¦ ÇØ°áÇϴ°¡?
__15.1.2 ÂüÁ¶ ŸÀÔ »ç¿ë ½Ã ÀÇ¹Ì º¯°æ
__15.1.3 null °¡´É ÂüÁ¶ ŸÀÔ
__15.1.4 ÄÄÆÄÀÏ Å¸ÀÓ°ú ·±Å¸ÀÓ ½Ã null °¡´É ÂüÁ¶ ŸÀÔ
__15.1.5 damnit ¿¬»êÀÚ, bang ¿¬»êÀÚ, null Çã¿ë ¿¬»êÀÚ
__15.1.6 null °¡´É ÂüÁ¶ ŸÀÔÀ» »ç¿ëÇϵµ·Ï ¼öÁ¤ÇÑ °æÇè
15.2 switch Ç¥Çö½Ä
15.3 Àç±Í ÆÐÅÏ ¸ÅĪ
__15.3.1 ÆÐÅÏ ³»¿¡¼ ¼Ó¼º ¸ÅĪ
__15.3.2 ºÐÇØ ÆÐÅÏ
__15.3.3 ÆÐÅÏ¿¡¼ ŸÀÔ »ý·«
15.4 Index¿Í Range
__15.4.1 Index¿Í Range ŸÀÔ ±×¸®°í ¸®ÅÍ·²
__15.4.2 Index¿Í Range »ç¿ë
15.5 ´õ ¸¹Àº ºñµ¿±â ±â´É Á¦°ø
__15.5.1 await¸¦ ÀÌ¿ëÇÑ ºñµ¿±â ¸®¼Ò½º Á¦°Å
__15.5.2 foreach await¸¦ ÀÌ¿ëÇÑ ºñµ¿±â ¼øȸ
__15.5.3 ºñµ¿±â ÀÌÅÍ·¹ÀÌÅÍ
15.6 ±× ¿ÜÀÇ ±â´Éµé
__15.6.1 ±âº» ÀÎÅÍÆäÀ̽º ¸Þ¼µå
15.7 C# 9.0¿¡ ´ëÇÏ¿©
__15.7.1 init Àü¿ë ¼¼ÅÍ
__15.7.2 ·¹ÄÚµå
__15.7.3 ÃÖ»óÀ§ ±¸¹®
__15.7.4 °³¼±µÈ ÆÐÅÏ ¸ÅĪ
__15.7.5 ´ë»ó-ŸÀÔ °í·Á new Ç¥Çö½Ä
15.8 Âü°¡¸¦ µ¶·ÁÇϸç
ºÎ·Ï ¹öÀüº° ¾ð¾î ±â´É