开启左侧

More Effective C#中文版:寫出良好C#程式的50個具體做法第二版

[复制链接]
  • 地区:台湾
  • 格式:PDF
  • 文件大小:57M
  • 时间:
  • 类别:学习
  • 价格:4共享币
  • 提示:本站推荐经典投资资料
  涵蓋C# 7.0
, }- f% \6 S7 e7 m- [: P5 x  在《More Effective C# 中文版 第二版》中,世界知名的.NET專家Bill Wagner指出並解說50個特定強大與效能良好的C# 7.0中高級技巧。針對可能遇到的問題,提出強而有力的新解法,以因應越來越複雜的C#語言與日漸龐大的開發社群。
# e6 u) t( u8 i  歷經三個版本的《Effective C#》,Wagner清楚的解釋、專業的建議與實際範例程式碼,已被證明對成千上百位開發者而言是無價的。《More Effective C#,第二版》以經過驗證的相同方式介紹C# 7.0新功能,協助你更有效率地執行熟悉工作。
9 s1 V0 I4 D" l! z4 b! i  基於卓越的C#經驗,以及在全球C#標準委員會的關鍵性角色,Wagner強調以物件導向、函數式及服務導向的方式,以C#處理資料、以更好的方式向使用者與其他程式設計師表達您的用意、以及運用強大的非同步與動態程式設計。
/ T+ S( a4 v; K: M" ?6 b5 T4 V! |  使用屬性取代可存取的資料成員(做法1)
4 b) |  B) Y8 i, |  區分實質與參考型別(做法4)
. u: c, }, R; a9 u) L9 C7 @. H4 _  了解多種相等概念之間的關係(做法9)
, h$ i0 Z0 j4 d  J& S6 N  在你的API中避免轉換運算子(做法11)$ U7 e& ^' W2 ?, a' Q; [* V3 W
  了解介面與virtual methods之間差異(做法15)
) U+ M. ?4 {9 N2 ]9 {) b- l  避免在基底類別中定義方法多載(做法19): M, y4 y. V( F! \" P
  建立清楚的、最少的、以及完整的方法群(做法22)
3 M0 E6 q, B/ r) y  ]" p+ I8 C  在iterators 及async方法中使用區域函式啟動立即錯誤回報(做法26)
3 M+ Q7 C5 F) t( j3 X# Z  非同步工作中使用async方法(做法27)6 D+ l% B% T. m8 t* }% {
  避免執行緒配置與context switches(做法30)
; L8 v7 s9 h: x1 B/ |, U  建構有考慮例外情況的平行演算法(做法36)
( ~( X5 h- S" ~/ m  使用執行緒區集取代建立執行緒(做法37)4 N6 i0 x8 A' e+ B4 k
  使用BackgroundWorker做跨執行緒通訊(做法38)$ S7 g. \/ l( h6 ]$ L
  了解動態程式設計的利弊(做法43)
/ \1 D4 b4 w0 Y% f6 r  了解如何運用expression API(做法46)
- q  v7 ]" m! ?( O  在公開的APIs中減少動態物件的使用(做法47)6 Z( ]3 \  Z6 G" c; w: Q
  你已經是一位成功的C#程式設計師,本書會使你更為出色。! V1 E) x( \# ]: K
  目錄0 S2 M# O, X7 X7 s3 M
  前言8 Q; {' b6 f4 C1 T4 a# f/ O1 C
  第1 章 處理資料型別
4 ?1 H$ P  ?+ D  作法01 使用屬性取代可存取的資料成員
$ i4 N! l& C  {, ?: `' i  作法02 可變動的資料優先使用隱藏屬性$ X5 p0 @2 O' r% X! |1 R
  作法03 實值型別優先使其具不可變性) Y0 b: Z( K8 s
  作法04 區分實值與參考型別: o! F3 A# Y) N6 z
  作法05 確保0 是實值型別的有效狀態
0 e! H, \; Y) _% ~- ~+ u3 {) j8 M/ H  作法06 確保屬性運作如資料一般5 H4 m6 g, k: k
  作法07 使用Tuples 限制型別的範圍+ |/ m7 Y. L1 |; q6 t
  作法08 在匿名型別上定義區域函式
$ ?6 l7 Q! }, X, f  作法09 了解多種相等概念之間的關係, ^% E( }& F- `. b- a
  作法10 了解GetHashCode() 的陷阱3 h2 D) u8 [' }) l! v/ k8 U. I
  第2 章 API 設計7 i3 C( g9 H; J* M
  作法11 在你的API 中避免轉換運算子
9 b2 g' U3 H  s  作法12 使用選擇性引數減少方法的多載& `1 U/ R" A/ U% c% b2 Y7 S4 F7 H
  作法13 限制型別的可見性4 n& o. _- D# U7 {) `) N% Y8 s
  作法14 優先定義並實作介面進行繼承0 {; C7 |+ c2 Z& ~- w8 u
  作法15 了解介面與Virtual Method 之間差異. B) N  D; M3 z6 c$ t$ M
  作法16 為通知實作事件模式
4 ]5 c1 y4 g6 E; q: l: w  作法17 避免傳回內部類別物件的參考1 l6 i7 k$ A( _  G( M
  作法18 優先使用Override 替代Event Handler1 c7 @# g9 Y. ~1 D4 w
  作法19 避免在基底類別中定義方法多載$ b. Q* x& _0 G4 U, I9 z. Z* G
  作法20 了解事件如何增進物件之間執行期的耦合* }" O( M0 m5 D5 ^  _) `
  作法21 只宣告Nonvirtual Event
1 Y( r4 t1 `9 m& A  作法22 建立清楚的、最少的,以及完整的方法群5 h8 r: W5 ~& B# l" M
  作法23 部分類別的建構函式、更動子與Event handler 使用部分方法8 d+ z0 u' d; B2 o) L8 M3 G
  作法24 避免使用ICloneable,因為它限制你的設計選擇- T! U) u# @6 u# s4 G
  作法25 Array 引數限制只使用params 陣列
: }6 r' n5 l8 l; H( c  作法26 在Iterators 與Async 方法中使用區域函式啟動立即錯誤回報, E$ V" d2 W$ H, Q
  第3 章 以Task 為基礎的非同步程式設計
# E1 B8 E; u" [* Y. X9 L6 V  作法27 非同步工作使用Async 方法
7 M2 O4 `5 C5 i  r( Y1 s/ q  作法28 永遠不要寫async void 方法6 X' L. f, I6 L/ B) Y
  作法29 避免結合同步與非同步方法
6 _1 {9 ?- F, J  作法30 避免執行緒配置及Context Switches
5 s' Q4 f( A& w" P8 V  o2 @# P2 T  作法31 避免非必要的封送處理(Marshalling)Context
# g7 M( [. B; J  作法32 使用Task 物件合成非同步工作% Q8 T! k- W9 d3 A+ s
  作法33 考慮實作Task 取消協定(Task Cancellation Protocol)8 ^4 L9 t3 g2 w; H+ _
  作法34 緩衝擴充的非同步回傳值
. m) s/ L# S' Z# S  v4 b8 c  第4 章 平行處理
4 _* I1 j+ e! H. V( s  作法35 學習PLINQ 如何實作平行演算法7 E1 S! s6 {- d8 `
  作法36 建構有考慮例外情況的平行演算法
. B, p5 R9 K: M, _* o  作法37 使用執行緒區集取代建立執行緒
9 T; d9 Q) T7 _. y) D# D  作法38 使用BackgroundWorker 做跨執行緒通訊: Q  L, W& G6 v+ `6 u
  作法39 了解XAML 環境中的跨執行緒呼叫
$ h0 a0 ]- H' `  作法40 使用lock() 作為同步處理的首選9 R  M/ I" Z; I! M% J; ?0 `7 w/ V& H
  作法41 鎖定Handles 使用最小可能的範圍
$ M* ^, E1 q% Y  作法42 避免在鎖定的區段呼叫不明的程式碼( g( ]" T* a1 ?) {
  第5 章 動態程式設計
0 u! n9 U  F$ f6 d0 {$ w8 w  作法43 了解動態程式設計的利弊/ A3 F- p& @' D
  作法44 透過動態型別運用泛型引數執行期的型別
( r8 l, ]' O% U, [% s2 l9 E6 \  G  作法45 資料驅動(Data-Driven)動態型別使用DynamicObject 或IDynamicMetaObjectProvider
0 C+ G5 T5 ]9 b$ f) j- k" i  作法46 了解如何運用Expression API2 V& C' i7 E; g
  作法47 在公開的API 中減少動態物件的使用
# Y5 p- k! @& G# A: u  ]7 x! Z  第6 章 參與全球C# 社群
* G! k) _$ w: H' [( f, v  作法48 尋求最好的答案,而不是最受歡迎的答案
5 c5 e1 Y, ?5 J$ s  作法49 參與規格及程式碼的訂定
0 o. U7 j& e5 {, s* o# K% B  作法50 考慮用分析器自動化慣用法& d* S( q9 |  N$ s# {0 N% W( H
  索引5 @. L, I3 k5 v2 h2 {9 {
游客,本下载内容需要支付4共享币,购买后显示下载链接立即支付

: E  x! ?5 H2 t* S; |# ~
$ A5 H# m8 [( H  q  |* Q" p
回复

使用道具 举报

懒得打字嘛,点击快捷回复 【回复乱码 永久禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝6

帖子1915

发布主题
推荐素材更多+
广告位

服务电话

15987183307

QQ:1136111231
关注我们 :

QQ- Archiver-手机版-小黑屋-经典-文库- 与你共享

Powered by ynjie.com Array© 2001-2013 ynjie.com  滇ICP备19007624号-1