首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

《Effective C# 精髓》摘選 (1)

     編輯:關於C語言

讀書筆記:前五條款重點

Item 1: 永遠用屬性取代公開資料成員

屬性是類別對外介面,資料成員是內部實現。暴露內部實現不利未來變更。

Item 2: 優先使用 readonly 而非 const

  • const 編譯期替換為常值,跨組件參考會硬編碼值,更新需重新編譯所有參考組件。
  • readonly 執行期評估,彈性較高,效能略低。
  • const 值必須編譯期決定,不能用 new 賦值。
  • 更新 public const 視為介面變更;更新 readonly 視為內部實現變更。

Item 3: 優先使用 is/as 而非強制轉型

  • is/as 為動態轉換,失敗不拋例外;as 回傳 null,效能較好。
  • 強制轉型失敗拋例外,代價高昂。
  • 三者均不會呼叫自訂轉換運算子。
  • is 可判斷值型別,as 不行。
  • 注意 Type.IsAssignableFrom()(支援介面)與 Type.IsSubclassOf()(不支援介面)。

Item 4: 使用 ConditionalAttribute 取代 #if

  • #if 可能導致空方法呼叫效能問題與程式碼相依性。
  • 標記 [Conditional("DEBUG")] 的方法永遠編譯進組件,條件不符時編譯器移除所有呼叫點。
  • 方法必須回傳 void,否則程式行為在不同建置下不一致。

Item 5: 永遠提供 ToString()

範例:將 Customer 陣列繫結至 ComboBox,若未覆寫 ToString() 需手動建立顯示字串清單;覆寫後可直接繫結物件陣列,ComboBox 自動呼叫 ToString() 顯示。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved