新書推薦:
《
斯坦福高中校长给父母的6堂课
》
售價:NT$
408.0
《
人间来过:百岁医师的人生处方
》
售價:NT$
250.0
《
湿胖2
》
售價:NT$
286.0
《
日本名厨高汤研究全书
》
售價:NT$
449.0
《
犹太古史
》
售價:NT$
908.0
《
四轮驱动:中国汽车产业的数智化创新之路
》
售價:NT$
454.0
《
帮凶:全二册
》
售價:NT$
407.0
《
红楼游园一步一景:详解红楼梦中的园林和建筑 配有人物关系图 赠送大观园全景图 精美书签
》
售價:NT$
407.0
|
內容簡介: |
涵蓋C#7.0
在《MoreEffectiveC#中文版第二版》中,世界知名的.NET專家BillWagner指出並解說50個特定強大與效能良好的C#7.0中高級技巧。針對可能遇到的問題,提出強而有力的新解法,以因應越來越複雜的C#語言與日漸龐大的開發社群。
歷經三個版本的《EffectiveC#》,Wagner清楚的解釋、專業的建議與實際範例程式碼,已被證明對成千上百位開發者而言是無價的。《MoreEffectiveC#,第二版》以經過驗證的相同方式介紹C#7.0新功能,協助你更有效率地執行熟悉工作。
基於卓越的C#經驗,以及在全球C#標準委員會的關鍵性角色,Wagner強調以物件導向、函數式及服務導向的方式,以C#處理資料、以更好的方式向使用者與其他程式設計師表達您的用意、以及運用強大的非同步與動態程式設計。
使用屬性取代可存取的資料成員做法1
區分實質與參考型別做法4
了解多種相等概念之間的關係做法9
在你的API中避免轉換運算子做法11
了解介面與virtualmethods之間差異做法15
避免在基底類別中定義方法多載做法19
建立清楚的、最少的、以及完整的方法群做法22
在iterators及async方法中使用區域函式啟動立即錯誤回報做法26
非同步工作中使用async方法做法27
避免執行緒配置與contextswitches做法30
建構有考慮例外情況的平行演算法做法36
使用執行緒區集取代建立執行緒做法37
使用BackgroundWorker做跨執行緒通訊做法38
了解動態程式設計的利弊做法43
了解如何運用expressionAPI做法46
在公開的APIs中減少動態物件的使用做法47
你已經是一位成功的C#程式設計師,本書會使你更為出色。
|
關於作者: |
BillWagner
BillWagner是世界最頂尖的C#開發者之一。他是ECMAC#標準委員會的成員,並且是所有三個版本的《EffectiveC#》的作者。他是HumanitarianToolbox的總裁、曾被委任為MicrosoftRegionalDirector、當選11年的.NETMVP。最近並受.NETFoundationAdvisoryCouncil委任。Wagner曾協助的公司包括新創公司到大型企業,以改善開發過程與建立開發團隊。現在作為Microsoft.NETCore內容團隊的成員,創作開發者C#語言及.NETCore的訓練教材。
|
目錄:
|
前言
第1章 處理資料型別
作法01使用屬性取代可存取的資料成員
作法02可變動的資料優先使用隱藏屬性
作法03實值型別優先使其具不可變性
作法04區分實值與參考型別
作法05確保0是實值型別的有效狀態
作法06確保屬性運作如資料一般
作法07使用Tuples限制型別的範圍
作法08在匿名型別上定義區域函式
作法09了解多種相等概念之間的關係
作法10了解GetHashCode的陷阱
第2章 API設計
作法11在你的API中避免轉換運算子
作法12使用選擇性引數減少方法的多載
作法13限制型別的可見性
作法14優先定義並實作介面進行繼承
作法15了解介面與VirtualMethod之間差異
作法16為通知實作事件模式
作法17避免傳回內部類別物件的參考
作法18優先使用Override替代EventHandler
作法19避免在基底類別中定義方法多載
作法20了解事件如何增進物件之間執行期的耦合
作法21只宣告NonvirtualEvent
作法22建立清楚的、最少的,以及完整的方法群
作法23部分類別的建構函式、更動子與Eventhandler使用部分方法
作法24避免使用ICloneable,因為它限制你的設計選擇
作法25Array引數限制只使用params陣列
作法26在Iterators與Async方法中使用區域函式啟動立即錯誤回報
第3章 以Task為基礎的非同步程式設計
作法27非同步工作使用Async方法
作法28永遠不要寫asyncvoid方法
作法29避免結合同步與非同步方法
作法30避免執行緒配置及ContextSwitches
作法31避免非必要的封送處理(Marshalling)Context
作法32使用Task物件合成非同步工作
作法33考慮實作Task取消協定(TaskCancellationProtocol)
作法34緩衝擴充的非同步回傳值
第4章 平行處理
作法35學習PLINQ如何實作平行演算法
作法36建構有考慮例外情況的平行演算法
作法37使用執行緒區集取代建立執行緒
作法38使用BackgroundWorker做跨執行緒通訊
作法39了解XAML環境中的跨執行緒呼叫
作法40使用lock作為同步處理的首選
作法41鎖定Handles使用最小可能的範圍
作法42避免在鎖定的區段呼叫不明的程式碼
第5章 動態程式設計
作法43了解動態程式設計的利弊
作法44透過動態型別運用泛型引數執行期的型別
作法45資料驅動(Data-Driven)動態型別使用DynamicObject或IDynamicMetaObjectProvider
作法46了解如何運用ExpressionAPI
作法47在公開的API中減少動態物件的使用
第6章 參與全球C#社群
作法48尋求最好的答案,而不是最受歡迎的答案
作法49參與規格及程式碼的訂定
作法50考慮用分析器自動化慣用法
|
|