Effective C#: 50 Specific Ways to Improve Your C# (Paperback)
暫譯: 有效的 C#: 提升 C# 的 50 種具體方法 (平裝本)

Bill Wagner

  • 出版商: Addison Wesley
  • 出版日期: 2004-12-03
  • 售價: $2,370
  • 貴賓價: 9.5$2,252
  • 語言: 英文
  • 頁數: 336
  • 裝訂: Paperback
  • ISBN: 0321245660
  • ISBN-13: 9780321245663
  • 相關分類: C#
  • 已過版

買這商品的人也買了...

相關主題

商品描述

Table of Contents:

Introduction.

1. C# Language Elements.

    Item 1 - Always Use Properties Instead of Accessible Data Members.

    Item 2 - Prefer readonly to const.

    Item 3 - Prefer the is or as Operators to Casts.

    Item 4 - Use Conditional Attributes Instead of #if.

    Item 5 - Always Provide ToString().

    Item 6 - Distinguish Between Value Types and Reference Types.

    Item 7 - Prefer Immutable Atomic Value Types.

    Item 8 - Ensure That 0 Is a Valid State for Value Types.

    Item 9 - Understand the Relationships Among ReferenceEquals(),static Equals(), instance Equals(), and operator==.

    Item 10 - Understand the Pitfalls of GetHashCode().

    Item 11 - Prefer foreach Loops.

2. .NET Resource Management.

    Item 12 - Prefer Variable Initializers to Assignment Statements.

    Item 13 - Initialize Static Class Members with Static Constructors.

    Item 14 - Utilize Constructor Chaining.

    Item 15 - Utilize using and try/finally for Resource Cleanup.

    Item 16 - Minimize Garbage.

    Item 17 - Minimize Boxing and Unboxing.

    Item 18 - Implement the Standard Dispose Pattern.

3. Expressing Designs with C#.

    Item 19 - Prefer Defining and Implementing Interfaces to Inheritance.

    Item 20 - Distinguish Between Implementing Interfaces and Overriding Virtual Functions.

    Item 21 - Express Callbacks with Delegates.

    Item 22 - Define Outgoing Interfaces with Events.

    Item 23 - Avoid Returning References to Internal Class Objects.

    Item 24 - Prefer Declarative to Imperative Programming.

    Item 25 - Prefer Serializable Types.

    Item 26 - Implement Ordering Relations with IComparable and Icomparer.

    Item 27 - Avoid Icloneable.

    Item 28 - Avoid Conversion Operators.

    Item 29 - Use the new Modifier Only When Base Class Updates Mandate It.

4. Creating Binary Components.

    Item 30 - Prefer CLS-Compliant Assemblies.

    Item 31 - Prefer Small, Simple Functions.

    Item 32 - Prefer Smaller, Cohesive Assemblies.

    Item 33 - Limit Visibility of Your Types.

    Item 34 - Create Large-Grain Web APIs.

5. Working with the Framework.

    Item 35 - Prefer Overrides to Event Handlers.

    Item 36 - Leverage .NET Runtime Diagnostics.

    Item 37 - Use the Standard Configuration Mechanism.

    Item 38 - Utilize and Support Data Binding.

    Item 39 - Use .NET Validation.

    Item 40 - Match Your Collection to Your Needs.

    Item 41 - Prefer DataSets to Custom Structures.

    Item 42 - Utilize Attributes to Simplify Reflection.

    Item 43 - Don't Overuse Reflection.

    Item 44 - Create Complete Application-Specific Exception Classes.

6. Miscellaneous.

    Item 45 - Prefer the Strong Exception Guarantee.

    Item 46 - Minimize Interop.

    Item 47 - Prefer Safe Code.

    Item 48 - Learn About Tools and Resources.

    Item 49 - Prepare for C# 2.0.

    Item 50 - Learn About the ECMA Standard.

Index.

商品描述(中文翻譯)

目錄:

引言。

1. C# 語言元素。
- 項目 1 - 始終使用屬性而不是可訪問的數據成員。
- 項目 2 - 優先使用 readonly 而非 const。
- 項目 3 - 優先使用 is 或 as 運算子而非類型轉換。
- 項目 4 - 使用條件屬性而不是 #if。
- 項目 5 - 始終提供 ToString()。
- 項目 6 - 區分值類型和引用類型。
- 項目 7 - 優先使用不可變的原子值類型。
- 項目 8 - 確保 0 是值類型的有效狀態。
- 項目 9 - 理解 ReferenceEquals()、static Equals()、instance Equals() 和 operator== 之間的關係。
- 項目 10 - 理解 GetHashCode() 的陷阱。
- 項目 11 - 優先使用 foreach 迴圈。

2. .NET 資源管理。
- 項目 12 - 優先使用變數初始化器而非賦值語句。
- 項目 13 - 使用靜態建構函數初始化靜態類成員。
- 項目 14 - 利用建構函數鏈接。
- 項目 15 - 使用 using 和 try/finally 進行資源清理。
- 項目 16 - 最小化垃圾。
- 項目 17 - 最小化裝箱和拆箱。
- 項目 18 - 實現標準的 Dispose 模式。

3. 使用 C# 表達設計。
- 項目 19 - 優先定義和實現介面而非繼承。
- 項目 20 - 區分實現介面和覆寫虛擬函數。
- 項目 21 - 使用委派表達回調。
- 項目 22 - 使用事件定義外部介面。
- 項目 23 - 避免返回對內部類對象的引用。
- 項目 24 - 優先使用聲明式編程而非命令式編程。
- 項目 25 - 優先使用可序列化類型。
- 項目 26 - 使用 IComparable 和 IComparer 實現排序關係。
- 項目 27 - 避免 ICloneable。
- 項目 28 - 避免轉換運算子。
- 項目 29 - 僅在基類更新要求時使用 new 修飾符。

4. 創建二進位組件。
- 項目 30 - 優先使用 CLS 相容的組件。
- 項目 31 - 優先使用小而簡單的函數。
- 項目 32 - 優先使用小而凝聚的組件。
- 項目 33 - 限制類型的可見性。
- 項目 34 - 創建大粒度的 Web API。

5. 與框架合作。
- 項目 35 - 優先使用覆寫而非事件處理器。
- 項目 36 - 利用 .NET 執行時診斷。
- 項目 37 - 使用標準配置機制。
- 項目 38 - 利用並支持數據綁定。
- 項目 39 - 使用 .NET 驗證。
- 項目 40 - 根據需求匹配您的集合。
- 項目 41 - 優先使用 DataSet 而非自定義結構。
- 項目 42 - 利用屬性簡化反射。
- 項目 43 - 不要過度使用反射。
- 項目 44 - 創建完整的應用程序特定異常類。

6. 其他。
- 項目 45 - 優先使用強異常保證。
- 項目 46 - 最小化互操作性。
- 項目 47 - 優先使用安全代碼。
- 項目 48 - 了解工具和資源。
- 項目 49 - 為 C# 2.0 做準備。
- 項目 50 - 了解 ECMA 標準。

索引。