C#類學習-2

C#除了嵌套類以外,還可以聲明有類型參數的泛型類:

泛型類封裝不是特定於具體數據類型的操作。
泛型類最常用於集合,如鏈接列表、哈希表、堆棧、隊列、樹等。
像從集合中添加和移除項這樣的操作都以大體上相同的方式執行,與所存儲數據的類型無關。
創建泛型類的過程如下:
從一個現有的具體類開始,
逐一將每個類型更改爲類型參數,
直至達到通用化和可用性的最佳平衡。
創建泛型類需注意以下事項:
 
  • 1. 將哪些類型通用化爲類型參數。
    通常,能夠參數化的類型越多,代碼就會變得越靈活,重用性就越好。但是,太多的通用化會使其他開發人員難以閱讀或理解代碼。
  •  
  • 2. 如果存在約束,應對類型參數應用什麼約束一條有用的規則是,應用儘可能最多的約束,但仍使您能夠處理必須處理的類型。例如,如果您知道您的泛型類僅用於引用類型,則應用類約束。這可以防止您的類被意外地用於值類型,並允許您對 T 使用 as 運算符以及檢查空值。
  •  
  • 3. 是否將泛型行爲分解爲基類和子類。
    由於泛型類可以作爲基類使用,此處適用的設計注意事項與非泛型類相同。請參見本主題後面有關從泛型基類繼承的規則。
  •  
  • 4. 是否實現一個或多個泛型接口。
     
    類型參數和約束的規則對於泛型類行爲有幾方面的含義,特別是關於繼承和成員可訪問性。
     
     
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章