-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

More Effective C#¤¤¤åª© | ¼g¥X¨}¦nC#µ{¦¡ªº50­Ó¨ãÅé°µªk ²Ä¤Gª©

( ÁcÅé ¦r)
§@ªÌ¡GBill WagnerÃþ§O¡G1. -> µ{¦¡³]­p -> .NET -> C#
ĶªÌ¡G 
¥Xª©ªÀ¡GùÖ®p¥Xª©More Effective C#¤¤¤åª© | ¼g¥X¨}¦nC#µ{¦¡ªº50­Ó¨ãÅé°µªk ²Ä¤Gª© 3dWoo®Ñ¸¹¡G 49051
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¯Ê®Ñ¡j
NT©w»ù¡G 450 ¤¸
§é¦©»ù¡G 338 ¤¸

¥Xª©¤é¡G5/11/2018
­¶¼Æ¡G277
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ÁcÅé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9789864767892
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

¤º®e²¤¶¡G

½u¤W¤U¸ü¤º®e
²[»\C# 7.0¦b¡mMore Effective C# ¤¤¤åª© ²Ä¤Gª©¡n¤¤¡A¥@¬Éª¾¦Wªº.NET±M®aBill Wagner«ü¥X¨Ã¸Ñ»¡50­Ó¯S©w±j¤j»P®Ä¯à¨}¦nªºC# 7.0¤¤°ª¯Å§Þ¥©¡C°w¹ï¥i¯à¹J¨ìªº°ÝÃD¡A´£¥X±j¦Ó¦³¤Oªº·s¸Ñªk¡A¥H¦]À³¶V¨Ó¶V½ÆÂøªºC#»y¨¥»P¤éº¥Ãe¤jªº¶}µoªÀ¸s¡C¾ú¸g¤T­Óª©¥»ªº¡mEffective C#¡n¡AWagner²M·¡ªº¸ÑÄÀ¡B±M·~ªº«Øij»P¹ê»Ú½d¨Òµ{¦¡½X¡A¤w³QÃÒ©ú¹ï¦¨¤d¤W¦Ê¦ì¶}µoªÌ¦Ó¨¥¬OµL»ùªº¡C¡mMore Effective C#¡A²Ä¤Gª©¡n¥H¸g¹LÅçÃÒªº¬Û¦P¤è¦¡¤¶²ÐC# 7.0·s¥\¯à¡A¨ó§U§A§ó¦³®Ä²v¦a°õ¦æ¼ô±x¤u§@¡C°ò©ó¨ô¶VªºC#¸gÅç¡A¥H¤Î¦b¥þ²yC#¼Ð·Ç©e­û·|ªºÃöÁä©Ê¨¤¦â¡AWagner±j½Õ¥Hª«¥ó¾É¦V¡B¨ç¼Æ¦¡¤ÎªA°È¾É¦Vªº¤è¦¡¡A¥HC#³B²z¸ê®Æ¡B¥H§ó¦nªº¤è¦¡¦V¨Ï¥ÎªÌ»P¨ä¥Lµ{¦¡³]­p®vªí¹F±zªº¥Î·N¡B¥H¤Î¹B¥Î±j¤jªº«D¦P¨B»P°ÊºAµ{¦¡³]­p¡C ?¨Ï¥ÎÄݩʨú¥N¥i¦s¨úªº¸ê®Æ¦¨­û(°µªk1)?°Ï¤À¹ê½è»P°Ñ¦Ò«¬§O(°µªk4)?¤F¸Ñ¦hºØ¬Ûµ¥·§©À¤§¶¡ªºÃö«Y(°µªk9)?¦b§AªºAPI¤¤ÁקKÂà´«¹Bºâ¤l(°µªk11)?¤F¸Ñ¤¶­±»Pvirtual methods¤§¶¡®t²§(°µªk15)?ÁקK¦b°ò©³Ãþ§O¤¤©w¸q¤èªk¦h¸ü(°µªk19)?«Ø¥ß²M·¡ªº¡B³Ì¤Öªº¡B¥H¤Î§¹¾ãªº¤èªk¸s(°µªk22)?¦biterators ¤Îasync¤èªk¤¤¨Ï¥Î°Ï°ì¨ç¦¡±Ò°Ê¥ß§Y¿ù»~¦^³ø(°µªk26)?«D¦P¨B¤u§@¤¤¨Ï¥Îasync¤èªk(°µªk27)?ÁקK°õ¦æºü°t¸m»Pcontext switches(°µªk30)?«Øºc¦³¦Ò¼{¨Ò¥~±¡ªpªº¥­¦æºtºâªk(°µªk36)?¨Ï¥Î°õ¦æºü°Ï¶°¨ú¥N«Ø¥ß°õ¦æºü(°µªk37)?¨Ï¥ÎBackgroundWorker°µ¸ó°õ¦æºü³q°T(°µªk38)?¤F¸Ñ°ÊºAµ{¦¡³]­pªº§Q¹ú(°µªk43)?¤F¸Ñ¦p¦ó¹B¥Îexpression API(°µªk46)?¦b¤½¶}ªºAPIs¤¤´î¤Ö°ÊºAª«¥óªº¨Ï¥Î(°µªk47)§A¤w¸g¬O¤@¦ì¦¨¥\ªºC#µ{¦¡³]­p®v¡A¥»®Ñ·|¨Ï§A§ó¬°¥X¦â¡C
¥Ø¿ý¡G

«e¨¥
²Ä 1 ³¹¡@³B²z¸ê®Æ«¬§O
§@ªk 01 ¨Ï¥ÎÄݩʨú¥N¥i¦s¨úªº¸ê®Æ¦¨­û
§@ªk 02 ¥iÅܰʪº¸ê®ÆÀu¥ý¨Ï¥ÎÁôÂÃÄÝ©Ê
§@ªk 03 ¹ê­È«¬§OÀu¥ý¨Ï¨ä¨ã¤£¥iÅÜ©Ê
§@ªk 04 °Ï¤À¹ê­È»P°Ñ¦Ò«¬§O
§@ªk 05 ½T«O 0 ¬O¹ê­È«¬§Oªº¦³®Äª¬ºA
§@ªk 06 ½T«OÄݩʹB§@¦p¸ê®Æ¤@¯ë
§@ªk 07 ¨Ï¥Î Tuples ­­¨î«¬§Oªº½d³ò
§@ªk 08 ¦b°Î¦W«¬§O¤W©w¸q°Ï°ì¨ç¦¡
§@ªk 09 ¤F¸Ñ¦hºØ¬Ûµ¥·§©À¤§¶¡ªºÃö«Y
§@ªk 10 ¤F¸Ñ GetHashCode() ªº³´¨À

²Ä 2 ³¹¡@API ³]­p
§@ªk 11 ¦b§Aªº API ¤¤ÁקKÂà´«¹Bºâ¤l
§@ªk 12 ¨Ï¥Î¿ï¾Ü©Ê¤Þ¼Æ´î¤Ö¤èªkªº¦h¸ü
§@ªk 13 ­­¨î«¬§Oªº¥i¨£©Ê
§@ªk 14 Àu¥ý©w¸q¨Ã¹ê§@¤¶­±¶i¦æÄ~©Ó
§@ªk 15 ¤F¸Ñ¤¶­±»P Virtual Method ¤§¶¡®t²§
§@ªk 16 ¬°³qª¾¹ê§@¨Æ¥ó¼Ò¦¡
§@ªk 17 ÁקK¶Ç¦^¤º³¡Ãþ§Oª«¥óªº°Ñ¦Ò
§@ªk 18 Àu¥ý¨Ï¥Î Override ´À¥N Event Handler
§@ªk 19 ÁקK¦b°ò©³Ãþ§O¤¤©w¸q¤èªk¦h¸ü
§@ªk 20 ¤F¸Ñ¨Æ¥ó¦p¦ó¼W¶iª«¥ó¤§¶¡°õ¦æ´Áªº½¢¦X
§@ªk 21 ¥u«Å§i Nonvirtual Event
§@ªk 22 «Ø¥ß²M·¡ªº¡B³Ì¤Öªº¡A¥H¤Î§¹¾ãªº¤èªk¸s
§@ªk 23 ³¡¤ÀÃþ§Oªº«Øºc¨ç¦¡¡B§ó°Ê¤l»P Event handler ¨Ï¥Î³¡¤À¤èªk
§@ªk 24 ÁקK¨Ï¥Î ICloneable¡A¦]¬°¥¦­­¨î§Aªº³]­p¿ï¾Ü
§@ªk 25 Array ¤Þ¼Æ­­¨î¥u¨Ï¥Î params °}¦C
§@ªk 26 ¦b Iterators »P Async ¤èªk¤¤¨Ï¥Î°Ï°ì¨ç¦¡±Ò°Ê¥ß§Y¿ù»~¦^³ø

²Ä 3 ³¹¡@¥HTask ¬°°ò¦ªº«D¦P¨Bµ{¦¡³]­p
§@ªk 27 «D¦P¨B¤u§@¨Ï¥Î Async ¤èªk
§@ªk 28 ¥Ã»·¤£­n¼g async void ¤èªk
§@ªk 29 ÁקKµ²¦X¦P¨B»P«D¦P¨B¤èªk
§@ªk 30 ÁקK°õ¦æºü°t¸m¤Î Context Switches
§@ªk 31 ÁקK«D¥²­nªº«Ê°e³B²z¡]Marshalling¡^Context
§@ªk 32 ¨Ï¥Î Task ª«¥ó¦X¦¨«D¦P¨B¤u§@
§@ªk 33 ¦Ò¼{¹ê§@ Task ¨ú®ø¨ó©w¡]Task Cancellation Protocol¡^
§@ªk 34 ½w½ÄÂX¥Rªº«D¦P¨B¦^¶Ç­È

²Ä 4 ³¹¡@¥­¦æ³B²z
§@ªk 35 ¾Ç²ß PLINQ ¦p¦ó¹ê§@¥­¦æºtºâªk
§@ªk 36 «Øºc¦³¦Ò¼{¨Ò¥~±¡ªpªº¥­¦æºtºâªk
§@ªk 37 ¨Ï¥Î°õ¦æºü°Ï¶°¨ú¥N«Ø¥ß°õ¦æºü
§@ªk 38 ¨Ï¥Î BackgroundWorker °µ¸ó°õ¦æºü³q°T
§@ªk 39 ¤F¸Ñ XAML Àô¹Ò¤¤ªº¸ó°õ¦æºü©I¥s
§@ªk 40 ¨Ï¥Î lock() §@¬°¦P¨B³B²zªº­º¿ï
§@ªk 41 Âê©w Handles ¨Ï¥Î³Ì¤p¥i¯àªº½d³ò
§@ªk 42 ÁקK¦bÂê©wªº°Ï¬q©I¥s¤£©úªºµ{¦¡½X

²Ä 5 ³¹¡@°ÊºAµ{¦¡³]­p
§@ªk 43 ¤F¸Ñ°ÊºAµ{¦¡³]­pªº§Q¹ú
§@ªk 44 ³z¹L°ÊºA«¬§O¹B¥Îªx«¬¤Þ¼Æ°õ¦æ´Áªº«¬§O
§@ªk 45 ¸ê®ÆÅX°Ê¡]Data-Driven¡^°ÊºA«¬§O¨Ï¥Î DynamicObject ©Î
IDynamicMetaObjectProvider
§@ªk 46 ¤F¸Ñ¦p¦ó¹B¥Î Expression API
§@ªk 47 ¦b¤½¶}ªº API ¤¤´î¤Ö°ÊºAª«¥óªº¨Ï¥Î

²Ä 6 ³¹¡@°Ñ»P¥þ²yC# ªÀ¸s
§@ªk 48 ´M¨D³Ì¦nªºµª®×¡A¦Ó¤£¬O³Ì¨üÅwªïªºµª®×
§@ªk 49 °Ñ»P³W®æ¤Îµ{¦¡½Xªº­q©w
§@ªk 50 ¦Ò¼{¥Î¤ÀªR¾¹¦Û°Ê¤ÆºD¥Îªk
§Ç¡G