-- ·|­û / µù¥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¤ÀÃþ

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

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

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

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

ĶªÌ§Ç¡G

«e¨¥¡G

¤º®e²¤¶¡G

²[»\ C# 6.0¦]À³¶V¨Ó¶V½ÆÂøªºC#»y¨¥»P¤éº¥Ãe¤jªº¶}µoªÀ¸s¡A§@ªÌÂk¯Ç¤F50ºØ¼¶¼g§ó¦nµ{¦¡ªº¤èªk¡A¨ó§UŪªÌ¼¶¼g¥X°í¹ê¡B°ª®Ä²v¡B°ª©Ê¯àC# 6.0µ{¦¡¡C¥»®Ñ·sª©©Ò´£¨Ñªº·s¤è®×¥]¬Aµ½¥Îªx«¬»PLINQ¡A¥H¤Î±Mªù¤@³¹°Q½×¨Ò¥~³B²zªº³Ì¨Î°µªk¡C²M·¡¡B°È¹ê¡B±M®a¯µ³Z»P¹ê¥Îªº½d¨Òµ{¦¡¡AÅý²³¦h¶}µoªÌ¹ïEffective C#·R¤£ÄÀ¤â¡C¾ÌÂǵÛÂ×´IªºC#¸gÅç¡A§@ªÌ´£¨Ñ¤FC#»y¨¥»P.NETÀô¹Ò¤¤¡A±q¸ê·½ºÞ²z¨ì¦h®Ö¤ä´©ªº¦UºØ°ÝÃD¸Ñ¨M¤è®×¡A¥H¤Î¦p¦óÁ׶}±`¨£ªº³´¨À¡CŪªÌ¥i¾Ç²ß¨ì¦b¦hºØ¿ï¶µ¤U¦p¦ó¿ï¾Ü³Ì¦³®Äªº¸Ñ¨M¤èªk¡A»P¦p¦ó¼¶¼g®e©öºûÅ@¤Î§ïµ½ªºµ{¦¡½X¡CWagner¸ÑÄÀ¤F¥H¤U±ø¥Øªº­ì¦]»P°µªk¡G?°¾¦nÁô§t«¬§Oªº°Ï°ìÅܼÆ(¨£¤èªk1)?¥H¤º´¡¦r¦ê¨ú¥Nstring.Format()(¨£¤èªk4)?¥Hdelegateªí¹Fcallback(¨£¤èªk7)?µ½¥Î.NETªº¸ê·½ºÞ²z(¨£¤èªk11)?©w¸q³Ì¤Ö¥B¨¬°÷ªºªx«¬­­¨î(¨£¤èªk18)?¨Ï¥Î°õ¦æ´Á«¬§OÀˬd¯S¤Æ³q¥Îºtºâªk(¨£¤èªk19)?¥Hdelegate©w¸q¤èªkªº«¬§O°Ñ¼Æ­­¨î(¨£¤èªk23)?¥HÂX¥R¤èªk³W½d³Ì¤p¬É­±¦X¬ù(¨£¤èªk27)?«Øºcsequenceªº¥i²Õ¦XAPI(¨£¤èªk31)?action¡Bpredicate¡B¥H¤Î¨ç¦¡»P­¡¥Nªº¸Ñ½¢(¨£¤èªk32)?°¾¦nlambdaªí¥Ü¦¡ªº¤èªk(¨£¤èªk38)?°Ï§O´£«e»P©µ«á°õ¦æ(¨£¤èªk40)?ÁקK§ì¨ú°ª¦¨¥»ªº¸ê·½(¨£¤èªk41)?¨Ï¥Î¨Ò¥~¦^³ø¤èªk¦X¬ù¥¢±Ñ(¨£¤èªk45)?§Q¥Î¨Ò¥~ºD¨Òªº°Æ§@¥Î(¨£¤èªk50)¦pªG§A¤w¸g¬O¦¨¥\ªºC#µ{¦¡³]­p®v¡A¥»®Ñ±NÅý§A®Ê¨­¬°³»¦y°ª¤â¡C
¥Ø¿ý¡G

«e¨¥

²Ä1³¹¡@C# »y¨¥ºD¥Î»yªk
°µªk01 °¾¦nÁô§t«¬§Oªº°Ï°ìÅܼÆ
°µªk02 °¾¦n readonly ¦Ó«D const
°µªk03 °¾¦n is ©Î as ¹Bºâ¤l¦Ó«D«¬§OÂà´«
°µªk04 ¥H¤º´¡¦r¦ê¨ú¥N string.Format()
°µªk05 ¹ï¤å¤Æ¯S©w¦r¦ê°¾¦n FormattableString
°µªk06 ÁקK¦r¦ê«¬§O API
°µªk07 ¥H delegate ªí¥Ü callback
°µªk08 ¹ï¨Æ¥ó¥s¥Î¨Ï¥ÎªÅ±ø¥ó¹Bºâ¤l
°µªk09 ´î¤Ö boxing »P unboxing
°µªk10 ¥u¹ï°ò©³Ãþ§O§ó·s¨Ï¥Î new ­×¹¢µü

²Ä2³¹¡@.NET ¸ê·½ºÞ²z
°µªk11 »{ÃÑ .NET ¸ê·½ºÞ²z
°µªk12 °¾¦n¦¨­ûªì©l¤Æµ{§Ç¦Ó«D«ü¬£³¯­z
°µªk13 ¹ïÀRºAÃþ§O¦¨­û¶i¦æ¾A·íªºªì©l¤Æ
°µªk14 ´î¤Ö­«½Æªºªì©l¤ÆÅÞ¿è
°µªk15 ÁקK«Øºc¤£¥²­nªºª«¥ó
°µªk16 µ´¤£¦b«Øºc¤¸¤¤©I¥sµêÀÀ¨ç¦¡
°µªk17 ¹ê§@¼Ð·Çªº Dispose ¼Ò¦¡

²Ä3³¹¡@¨Ï¥Îªx«¬
°µªk18 ©w¸q³Ì¤Ö»P¨¬°÷ªº¬ù§ô
°µªk19 ¨Ï¥Î°õ¦æ´Á«¬§OÀˬd¯S¤Æªx«¬ºtºâªk
°µªk20 ¥H IComparable »P IComparer ¹ê§@±Æ§ÇÃö«Y
°µªk21 «Øºc¤ä´© Disposable «¬§O°Ñ¼Æªºªx«¬Ãþ§O
°µªk22 ¤ä´©ªx«¬ªº¦@ÅܼƻP¤ÏÅܼÆ
°µªk23 ¨Ï¥Î delegate ©w¸q«¬§O°Ñ¼Æªº¤èªk¬ù§ô
°µªk24 ¤Å©ó°ò©³Ãþ§O©Î¬É­±«Øºcªx«¬¯S¤Æ
°µªk25 °¾¦nªx«¬¤èªk¡A°£«D«¬§O°Ñ¼Æ¬O¹ê¨ÒÄæ¦ì
°µªk26 °£ªx«¬¬É­±¥~ÁÙ­n¹ê§@¶Ç²Î¬É­±
°µªk27 ¥HÂX¥R¤èªk¥[¤J³Ì¤Öªº¬É­±¦X¬ù
°µªk28 ¥HÂX¥R¤èªk¥[±j«Øºc«¬§O

²Ä4³¹¡@¨Ï¥ÎLINQ
°µªk29 °¾¦n¥H Iterator ¤èªk¦^¶Ç¶°¦X
°µªk30 °¾¦n¬d¸ß»yªk¦Ó«D?°é
°µªk31 ¬°§Ç¦C«Øºc¥i²Õ¦X API
°µªk32 ±q°Ê§@¡B­zµü»P¨ç¦¡¤¤¸Ñ½¢­¡¥N
°µªk33 ³Q½Ð¨D®É²£¥Í§Ç¦C¶µ¥Ø
°µªk34 ¨Ï¥Î¨ç¦¡°Ñ¼Æ¸Ñ½¢
°µªk35 ¤£­n¹L¸üÂX¥R¤èªk
°µªk36 »{ÃѬd¸ßªí¥Ü¦¡¦p¦ó¹ïÀ³¤èªk©I¥s
°µªk37 ¦b¬d¸ß¤¤°¾¦n´k©Ê¨D­È¦Ó«D¿n·¥¨D­È
°µªk38 °¾¦n lambda ªí¥Ü¦¡¦Ó«D¤èªk
°µªk39 ÁקK¦b¨ç¦¡»P°Ê§@¤¤©ß¥X¨Ò¥~
°µªk40 °Ï¤À´£«e»P©µ¿ð°õ¦æ
°µªk41 ÁקK®·®»©ù¶Qªº¸ê·½
°µªk42 °Ï¤À IEnumerable »P IQueryable ¸ê®Æ¨Ó·½
°µªk43 ¨Ï¥Î Single() »P First() ¥H±j¨î¬d¸ßªº»y·Nµ²ªG
°µªk44 ÁקK­×§ï­­¬ÉÅܼÆ

²Ä5³¹ ¨Ò¥~ªº³Ì¨Î°µªk
°µªk45 ¥H¨Ò¥~¦^³ø¤èªk¬ù©w¥¢±Ñ
°µªk46 ¥H using »P try/final ²M²z¸ê·½
°µªk47 «Øºc§¹¾ãªºÀ³¥Îµ{¦¡±MÄݨҥ~Ãþ§O
°µªk48 °¾¦n±j¨Ò¥~«OÃÒ
°µªk49 °¾¦n¨Ò¥~¹LÂo¦Ó«D catch »P­«·s©ß¥X
°µªk50 §Q¥Î¨Ò¥~¹LÂoªº°Æ§@¥Î

¯Á¤Þ
§Ç¡G