PDF
本書有DRM加密保護,需使用HyRead閱讀軟體開啟
  • More Effective C#中文版:寫出良好C#程式的50個具體做法
  • 點閱:238
  • 譯自:More effective C# (includes content update program):50 specific ways to improve your C#, 2nd ed
  • 作者: Bill Wagner作 , 陳開煇, 孫天佑譯
  • 出版社:碁峰資訊
  • 出版年:2018[民107]
  • ISBN:978-986-476-861-5 ; 986-476-861-1
  • 格式:PDF
  • 版次:第二版
  • 附註:原紙本書ISBN: 9789864767892 含索引

內容簡介
 
涵蓋C# 7.0
 
在《More Effective C# 中文版 第二版》中,世界知名的.NET專家Bill Wagner指出並解說50個特定強大與效能良好的C# 7.0中高級技巧。針對可能遇到的問題,提出強而有力的新解法,以因應越來越複雜的C#語言與日漸龐大的開發社群。

 
歷經三個版本的《Effective C#》,Wagner清楚的解釋、專業的建議與實際範例程式碼,已被證明對成千上百位開發者而言是無價的。《More Effective C#,第二版》以經過驗證的相同方式介紹C# 7.0新功能,協助你更有效率地執行熟悉工作。
 
基於卓越的C#經驗,以及在全球C#標準委員會的關鍵性角色,Wagner強調以物件導向、函數式及服務導向的方式,以C#處理資料、以更好的方式向使用者與其他程式設計師表達您的用意、以及運用強大的非同步與動態程式設計。
 
‧使用屬性取代可存取的資料成員(做法1)
‧區分實質與參考型別(做法4)
‧了解多種相等概念之間的關係(做法9)
‧在你的API中避免轉換運算子(做法11)
‧了解介面與virtual methods之間差異(做法15)
‧避免在基底類別中定義方法多載(做法19)
‧建立清楚的、最少的、以及完整的方法群(做法22)
‧在iterators 及async方法中使用區域函式啟動立即錯誤回報(做法26)
‧非同步工作中使用async方法(做法27)
‧避免執行緒配置與context switches(做法30)
‧建構有考慮例外情況的平行演算法(做法36)
‧使用執行緒區集取代建立執行緒(做法37)
‧使用BackgroundWorker做跨執行緒通訊(做法38)
‧了解動態程式設計的利弊(做法43)
‧了解如何運用expression API(做法46)
‧在公開的APIs中減少動態物件的使用(做法47)
 
你已經是一位成功的C#程式設計師,本書會使你更為出色。


作者簡介
 
Bill Wagner
 
Bill Wagner 是世界最頂尖的C#開發者之一。他是ECMA C#標準委員會的成員,並且是所有三個版本的《Effective C#》的作者。他是Humanitarian Toolbox的總裁、曾被委任為Microsoft Regional Director、當選11年的.NET MVP。最近並受.NET Foundation Advisory Council委任。Wagner曾協助的公司包括新創公司到大型企業,以改善開發過程與建立開發團隊。現在作為Microsoft .NET Core內容團隊的成員,創作開發者C#語言及.NET Core的訓練教材。

  • 前言(第vii頁)
  • 第 1 章 處理資料型別(第1頁)
    • 作法 01 使用屬性取代可存取的資料成員(第1頁)
    • 作法 02 可變動的資料優先使用隱藏屬性(第8頁)
    • 作法 03 實值型別優先使其具不可變性(第12頁)
    • 作法 04 區分實值與參考型別(第18頁)
    • 作法 05 確保 0 是實值型別的有效狀態(第23頁)
    • 作法 06 確保屬性運作如資料一般(第27頁)
    • 作法 07 使用 Tuples 限制型別的範圍(第33頁)
    • 作法 08 在匿名型別上定義區域函式(第38頁)
    • 作法 09 了解多種相等概念之間的關係(第43頁)
    • 作法 10 了解 GetHashCode() 的陷阱(第52頁)
  • 第 2 章 API 設計(第59頁)
    • 作法 11 在你的 API 中避免轉換運算子(第59頁)
    • 作法 12 使用選擇性引數減少方法的多載(第63頁)
    • 作法 13 限制型別的可見性(第67頁)
    • 作法 14 優先定義並實作介面進行繼承(第71頁)
    • 作法 15 了解介面與 Virtual Method 之間差異(第79頁)
    • 作法 16 為通知實作事件模式(第83頁)
    • 作法 17 避免傳回內部類別物件的參考(第89頁)
    • 作法 18 優先使用 Override 替代 Event Handler(第93頁)
    • 作法 19 避免在基底類別中定義方法多載(第95頁)
    • 作法 20 了解事件如何增進物件之間執行期的耦合(第100頁)
    • 作法 21 只宣告 Nonvirtual Event(第102頁)
    • 作法 22 建立清楚的、最少的,以及完整的方法群(第108頁)
    • 作法 23 部分類別的建構函式、更動子與 Event handler 使用部分方法(第114頁)
    • 作法 24 避免使用 ICloneable,因為它限制你的設計選擇(第119頁)
    • 作法 25 Array 引數限制只使用 params 陣列(第124頁)
    • 作法 26 在 Iterators 與 Async 方法中使用區域函式啟動立即錯誤回報(第128頁)
  • 第 3 章 以 Task 為基礎的非同步程式設計(第133頁)
    • 作法 27 非同步工作使用 Async 方法(第133頁)
    • 作法 28 永遠不要寫 async void 方法(第137頁)
    • 作法 29 避免結合同步與非同步方法(第143頁)
    • 作法 30 避免執行緒配置及 Context Switches(第147頁)
    • 作法 31 避免非必要的封送處理(Marshalling)Context(第149頁)
    • 作法 32 使用 Task 物件合成非同步工作(第153頁)
    • 作法 33 考慮實作 Task 取消協定(Task Cancellation Protocol)(第159頁)
    • 作法 34 緩衝擴充的非同步回傳值(第166頁)
  • 第 4 章 平行處理(第169頁)
    • 作法 35 學習 PLINQ 如何實作平行演算法(第169頁)
    • 作法 36 建構有考慮例外情況的平行演算法(第181頁)
    • 作法 37 使用執行緒區集取代建立執行緒(第186頁)
    • 作法 38 使用 BackgroundWorker 做跨執行緒通訊(第192頁)
    • 作法 39 了解 XAML 環境中的跨執行緒呼叫(第196頁)
    • 作法 40 使用 lock() 作為同步處理的首選(第204頁)
    • 作法 41 鎖定 Handles 使用最小可能的範圍(第211頁)
    • 作法 42 避免在鎖定的區段呼叫不明的程式碼(第215頁)
  • 第 5 章 動態程式設計(第219頁)
    • 作法 43 了解動態程式設計的利弊(第219頁)
    • 作法 44 透過動態型別運用泛型引數執行期的型別(第228頁)
    • 作法 45 資料驅動(Data-Driven)動態型別使用 DynamicObject 或 IDynamicMetaObjectProvider(第231頁)
    • 作法 46 了解如何運用 Expression API(第242頁)
    • 作法 47 在公開的 API 中減少動態物件的使用(第248頁)
  • 第 6 章 參與全球 C# 社群(第255頁)
    • 作法 48 尋求最好的答案,而不是最受歡迎的答案(第255頁)
    • 作法 49 參與規格及程式碼的訂定(第257頁)
    • 作法 50 考慮用分析器自動化慣用法(第258頁)
  • 索引(第260頁)
紙本書 NT$ 450
單本電子書
NT$ 315

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