PDF
本書有DRM加密保護,需使用HyRead閱讀軟體開啟
  • Effective C#中文版:寫出良好C#程式的50個具體做法
  • 點閱:103
  • 譯自:Effective C#:50 specific ways to improve your C#, 3rd ed
  • 作者: Bill Wagner著 , 楊尊一譯
  • 出版社:碁峰資訊
  • 出版年:2017[民106]
  • ISBN:978-986-476-526-3;
  • 格式:PDF
  • 附註:原紙本書ISBN: 9789864763481 含索引 第三版

 
內容簡介
 
涵蓋 C# 6.0
 

因應越來越複雜的C#語言與日漸龐大的開發社群,作者歸納了50種撰寫更好程式的方法,協助讀者撰寫出堅實、高效率、高性能C# 6.0程式。本書新版所提供的新方案包括善用泛型與LINQ,以及專門一章討論例外處理的最佳做法。
 
清楚、務實、專家秘訣與實用的範例程式,讓眾多開發者對Effective C#愛不釋手。憑藉著豐富的C#經驗,作者提供了C#語言與.NET環境中,從資源管理到多核支援的各種問題解決方案,以及如何避開常見的陷阱。讀者可學習到在多種選項下如何選擇最有效的解決方法,與如何撰寫容易維護及改善的程式碼。Wagner解釋了以下條目的原因與做法:
 
‧偏好隱含型別的區域變數(見方法1)
‧以內插字串取代string.Format()(見方法4)
‧以delegate表達callback(見方法7)
‧善用.NET的資源管理(見方法11)
‧定義最少且足夠的泛型限制(見方法18)
‧使用執行期型別檢查特化通用演算法(見方法19)
‧以delegate定義方法的型別參數限制(見方法23)
‧以擴充方法規範最小界面合約(見方法27)
‧建構sequence的可組合API(見方法31)
‧action、predicate、以及函式與迭代的解耦(見方法32)
‧偏好lambda表示式的方法(見方法38)
‧區別提前與延後執行(見方法40)
‧避免抓取高成本的資源(見方法41)
‧使用例外回報方法合約失敗(見方法45)
‧利用例外慣例的副作用(見方法50)
 
如果你已經是成功的C#程式設計師,本書將讓你晉身為頂尖高手。


作者簡介
 
Bill Wagner
 
Bill Wagner 曾經為Microsoft設計.NET學習教材,是最重要的C#專家之一,也是C# Standards Committee的成員。他是Humanitarian Toolbox的總裁,同時任職於 .NET Foundation Advisory Council與Technical Steering Committees。曾經在新創與大企業工作過,負責改善開發程序與團隊。同時是位國際知名作者,著作包括本書的前兩個版本以及More Effective C#。具有University of Illinois的資工學士學位。

  • 前言(第ix頁)
  • 第1章 C#語言慣用語法(第1頁)
    • 做法01 偏好隱含型別的區域變數(第1頁)
    • 做法02 偏好readonly而非const(第7頁)
    • 做法03 偏好is或as運算子而非型別轉換(第10頁)
    • 做法04 以內插字串取代string.Format()(第17頁)
    • 做法05 對文化特定字串偏好FormattableString(第20頁)
    • 做法06 避免字串型別API(第22頁)
    • 做法07 以delegate表示callback(第24頁)
    • 做法08 對事件叫用使用空條件運算子(第27頁)
    • 做法09 減少boxing與unboxing(第30頁)
    • 做法10 只對基底類別更新使用new修飾詞(第33頁)
  • 第2章 .NET資源管理(第37頁)
    • 做法11 認識.NET資源管理(第37頁)
    • 做法12 偏好成員初始化程序而非指派陳述(第42頁)
    • 做法13 對靜態類別成員進行適當的初始化(第44頁)
    • 做法14 減少重複的初始化邏輯(第47頁)
    • 做法15 避免建構不必要的物件(第54頁)
    • 做法16 絕不在建構元中呼叫虛擬函式(第57頁)
    • 做法17 實作標準的Dispose模式(第60頁)
  • 第3章 使用泛型(第67頁)
    • 做法18 定義最少與足夠的約束(第69頁)
    • 做法19 使用執行期型別檢查特化泛型演算法(第74頁)
    • 做法20 以IComparable與IComparer實作排序關係(第80頁)
    • 做法21 建構支援Disposable型別參數的泛型類別(第86頁)
    • 做法22 支援泛型的共變數與反變數(第89頁)
    • 做法23 使用delegate定義型別參數的方法約束(第94頁)
    • 做法24 勿於基底類別或界面建構泛型特化(第99頁)
    • 做法25 偏好泛型方法,除非型別參數是實例欄位(第102頁)
    • 做法26 除泛型界面外還要實作傳統界面(第106頁)
    • 做法27 以擴充方法加入最少的界面合約(第112頁)
    • 做法28 以擴充方法加強建構型別(第115頁)
  • 第4章 使用LINQ(第117頁)
    • 做法29 偏好以Iterator方法回傳集合(第117頁)
    • 做法30 偏好查詢語法而非廻圈(第123頁)
    • 做法31 為序列建構可組合API(第127頁)
    • 做法32 從動作、述詞與函式中解耦迭代(第133頁)
    • 做法33 被請求時產生序列項目(第136頁)
    • 做法34 使用函式參數解耦(第139頁)
    • 做法35 不要過載擴充方法(第145頁)
    • 做法36 認識查詢表示式如何對應方法呼叫(第148頁)
    • 做法37 在查詢中偏好惰性求值而非積極求值(第159頁)
    • 做法38 偏好lambda表示式而非方法(第164頁)
    • 做法39 避免在函式與動作中拋出例外(第167頁)
    • 做法40 區分提前與延遲執行(第169頁)
    • 做法41 避免捕捉昂貴的資源(第173頁)
    • 做法42 區分IEnumerable與IQueryable資料來源(第185頁)
    • 做法43 使用Single()與First()以強制查詢的語意結果(第188頁)
    • 做法44 避免修改限界變數(第191頁)
  • 第5章 例外的最佳做法(第197頁)
    • 做法45 以例外回報方法約定失敗(第197頁)
    • 做法46 以using與try/final清理資源(第200頁)
    • 做法47 建構完整的應用程式專屬例外類別(第207頁)
    • 做法48 偏好強例外保證(第211頁)
    • 做法49 偏好例外過濾而非catch與重新拋出(第217頁)
    • 做法50 利用例外過濾的副作用(第221頁)
  • 索引(第225頁)
紙本書 NT$ 450
單本電子書
NT$ 315

還沒安裝 HyRead 3 嗎?馬上免費安裝~
QR Code