开启左侧

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

[复制链接]
  • 地区:台湾
  • 格式:PDF
  • 文件大小:49M
  • 时间:
  • 类别:学习
  • 价格:8共享币
  • 提示:本站推荐经典投资资料
  涵蓋 C# 6.0
' z# V6 a+ ^0 c- d) `$ T2 b  因應越來越複雜的C#語言與日漸龐大的開發社群,作者歸納了50種撰寫更好程式的方法,協助讀者撰寫出堅實、高效率、高性能C# 6.0程式。本書新版所提供的新方案包括善用泛型與LINQ,以及專門一章討論例外處理的最佳做法。1 ~% u/ c& D) ~* w$ D
  清楚、務實、專家秘訣與實用的範例程式,讓眾多開發者對Effective C#愛不釋手。憑藉著豐富的C#經驗,作者提供了C#語言與.NET環境中,從資源管理到多核支援的各種問題解決方案,以及如何避開常見的陷阱。讀者可學習到在多種選項下如何選擇最有效的解決方法,與如何撰寫容易維護及改善的程式碼。Wagner解釋了以下條目的原因與做法:0 y  B* T1 m* R9 i1 r" q
  ?偏好隱含型別的區域變數(見方法1)& _* q( v0 Z% V0 H1 d5 \
  ?以內插字串取代string.Format()(見方法4)! _2 A+ Q: ~( V5 e8 j8 u
  ?以delegate表達callback(見方法7)) m$ Y- L" Z3 X2 P4 M2 R. O
  ?善用.NET的資源管理(見方法11)
+ r: e, O3 X3 l& ]# t. N  ?定義最少且足夠的泛型限制(見方法18)
8 n1 f, |7 l. a  ?使用執行期型別檢查特化通用演算法(見方法19): {" J. k' \# `2 m, U* W/ [# S
  ?以delegate定義方法的型別參數限制(見方法23)
1 Q) N  \3 l: z* i" A  ?以擴充方法規範最小界面合約(見方法27); k) Q. N- k0 ?: N- o$ {! P' {& m$ L
  ?建構sequence的可組合API(見方法31)+ }! _3 X, `- t( s
  ?action、predicate、以及函式與迭代的解耦(見方法32)8 g3 P: l8 A; [! c. E" _: o4 t8 v
  ?偏好lambda表示式的方法(見方法38)& ^, r+ l8 k, G! A+ H
  ?區別提前與延後執行(見方法40)/ a! X9 k3 b# u+ o& O
  ?避免抓取高成本的資源(見方法41)
* ]+ U- c  B* e" \2 W1 R  ?使用例外回報方法合約失敗(見方法45)
& C# R# M  \* a  ?利用例外慣例的副作用(見方法50)
2 {  P9 B/ k0 ~9 R( Q3 R5 O) M  如果你已經是成功的C#程式設計師,本書將讓你晉身為頂尖高手。5 q, y  t; c7 n9 N# j2 `8 Q
  目錄
( f3 f* [  X. D' p* P" c4 ?2 ?4 s; w  前言
- S0 p6 S( k* E1 N6 U2 U  第1 章 C# 語言慣用語法' j! c3 d, H% A& v
  做法01 偏好隱含型別的區域變數
' x# A% o* K4 V4 J5 R$ i- O$ n9 y  做法02 偏好readonly 而非const
% J+ p2 g. N$ Y9 M  做法03 偏好is 或as 運算子而非型別轉換
5 S5 |3 P; U# B  @$ T# E  做法04 以內插字串取代string.Format()$ a- L* g5 E( @3 c3 y* h1 @
  做法05 對文化特定字串偏好FormattableString, a3 T$ b6 T& X$ ~6 ~; K
  做法06 避免字串型別API* }5 m$ h, a% L4 C% q! B0 O& r* p
  做法07 以delegate 表示callback/ h" }( }6 n5 I4 {- Q. `
  做法08 對事件叫用使用空條件運算子
2 Z! v" _' ^7 Y6 w  做法09 減少boxing 與unboxing; B. U* p7 F. x! b4 k
  做法10 只對基底類別更新使用new 修飾詞
% i1 {, _- z$ f  第2 章 .NET 資源管理
/ m. g- V6 x7 ^. J; I9 K3 `( H  做法11 認識.NET 資源管理( s% l9 u2 g' v5 g& O  p
  做法12 偏好成員初始化程序而非指派陳述( I. p4 S( n3 k1 w2 q1 p4 T
  做法13 對靜態類別成員進行適當的初始化
; ^' J9 e: i: v; x! c" b  做法14 減少重複的初始化邏輯
0 q. t  n4 d4 M, Y3 L% }  做法15 避免建構不必要的物件" a5 w/ [3 y9 w6 a2 I
  做法16 絕不在建構元中呼叫虛擬函式
0 n. e( W8 ^. _! i- t: G; F  做法17 實作標準的Dispose 模式6 @, s( j% n. y# Y
  第3 章 使用泛型
4 z* p. X8 _! z7 N7 k  做法18 定義最少與足夠的約束! y+ Q  n& _" z9 @* M# C
  做法19 使用執行期型別檢查特化泛型演算法/ j! B7 y6 F- _- o6 j, w5 b) `+ P5 f
  做法20 以IComparable<T> 與IComparer<T> 實作排序關係
. H' z+ I: F1 Q8 C% B9 X  做法21 建構支援Disposable 型別參數的泛型類別  j' w- c% G' r
  做法22 支援泛型的共變數與反變數
. V+ S- M/ v% P4 `0 U; a  做法23 使用delegate 定義型別參數的方法約束0 U# {9 m! f1 e  X; }
  做法24 勿於基底類別或界面建構泛型特化
; v  Z5 i2 S& H; z  c" a% u* D  做法25 偏好泛型方法,除非型別參數是實例欄位: i8 J7 \$ ~- h' V
  做法26 除泛型界面外還要實作傳統界面# p" {; x; I; `/ W; B0 H0 [
  做法27 以擴充方法加入最少的界面合約
/ Z( r$ m6 T( B1 a" n5 n( n1 z  做法28 以擴充方法加強建構型別
& Q2 b# j# G  M- ]  第4 章 使用LINQ
5 m" _* X5 G. n8 _' G1 c  k: d4 R% b  做法29 偏好以Iterator 方法回傳集合
5 W7 g; l5 Z9 ?, B' _  做法30 偏好查詢語法而非廻圈3 [1 _" p3 [) j) Y- S! Y
  做法31 為序列建構可組合API
# M0 Q* S, D8 R3 M% \& s  做法32 從動作、述詞與函式中解耦迭代
! {" o4 n1 U4 N) i/ H  做法33 被請求時產生序列項目
: i- J9 y% v9 Z2 K6 B8 ~  做法34 使用函式參數解耦- s$ j  C' S, s: T
  做法35 不要過載擴充方法) E2 c$ W% Q# l
  做法36 認識查詢表示式如何對應方法呼叫
* n5 P! F, g, v/ n/ }  做法37 在查詢中偏好惰性求值而非積極求值2 N) w3 b/ y) }, j
  做法38 偏好lambda 表示式而非方法
6 g4 S' V: J  M; m2 z6 W. z: p  做法39 避免在函式與動作中拋出例外2 H" {/ |7 O) m  d. L
  做法40 區分提前與延遲執行8 h9 E* @' k7 ~& {' t
  做法41 避免捕捉昂貴的資源
( i5 b, Z+ g. P4 j6 J- m6 W& T  做法42 區分IEnumerable 與IQueryable 資料來源$ ^5 s! \  f8 _
  做法43 使用Single() 與First() 以強制查詢的語意結果" q2 C4 L! C6 O* b
  做法44 避免修改限界變數
+ G1 v, U; {7 u  例外的最佳做法
' V1 c- h  N1 c% I  做法45 以例外回報方法約定失敗
5 Y; ]. o. ^4 R: J# ^# d: T  做法46 以using 與try/final 清理資源5 B  X) l0 x$ |! u7 p: d% B
  做法47 建構完整的應用程式專屬例外類別
2 K9 Q0 g; d% X1 h2 j  做法48 偏好強例外保證
4 T5 B  C" J  G; _% [) ?  做法49 偏好例外過濾而非catch 與重新拋出
9 S# Q0 a: P: @+ j  n  做法50 利用例外過濾的副作用/ {; I* l3 V# l+ m
游客,本下载内容需要支付8共享币,购买后显示下载链接立即支付
) W: p: a/ _9 o# o
9 W& K+ ?0 a$ n+ Z
回复

使用道具 举报

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

本版积分规则

关注0

粉丝6

帖子1906

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

服务电话

15987183307

QQ:1136111231
关注我们 :

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

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