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

C# 2.0 泛型程式設計入門教學 (1) - 為什麼需要泛型

     編輯:關於C語言

什麼是泛型

解決「功能相似、資料型別不同」需重複撰寫程式碼的問題。以通用型別參數 T 取代具體型別,實例化時指定實際型別。

為什麼需要泛型

問題 1:重複程式碼

public class Stack { private int[] m_item; public int Pop(){...} public void Push(int item){...} }
// 需要 string 版、long 版... 必須複製修改

問題 2:使用 object 的缺點

public class Stack { private object[] m_item; public object Pop(){...} public void Push(object item){...} }
  • 值型別裝箱/拆箱: 大量配置回收記憶體,效能嚴重損失
  • 參考型別強制轉型: 增加處理器負擔
  • 型別安全隱患: 編譯通過但執行時拋出 InvalidCastException
    Node1 x = new Node1(); stack.Push(x);
    Node2 y = (Node2)stack.Pop(); // 執行時錯誤,編譯器無法檢測
    

泛型解決方案

以 T 取代 object,實例化時指定型別,執行期編譯為原生碼,兼顧效能、型別安全、程式碼重用。

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