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

C# 泛型介紹(一):型別參數概念、類型安全與避免重複代碼

     編輯:關於C語言

什麼是泛型?

**型別參數** — 方法/類別定義時不指定具體型別,使用時才由呼叫端提供。泛型讓「型別」成為參數,如同「值」可作參數。

.NET 1.1 時代如何達成類型安全?

手寫強型別包裝類別,實作 IList 並內部委派 ArrayList:


public class PersonCollection : IList
{
    private ArrayList _list = new ArrayList();
    public Person this[int i] => (Person)_list[i]; // 強制轉型
    public int Add(Person p) { _list.Add(p); return _list.Count-1; }
    public void Remove(Person p) => _list.Remove(p);
    // 顯性介面實作 IList 成員...
}

缺點:每新增一個型別 (Dog、Car、Order...) 就得 **Copy-Paste 修改型別名稱**,重複代碼爆炸、維護惡夢。

泛型 List 一行解決


List persons = new List();
persons.Add(new Person());
Person p = persons[0]; // 編譯期類型檢查,無轉型

List dogs = new List();
dogs.Add(new Dog());
Dog d = dogs[0];
  • 零重複代碼:單一 List 服務所有型別
  • 編譯期類型安全:嘗試 persons.Add(new Dog()) 直接編譯錯誤
  • 無裝箱/拆箱 (值型別時)

兩大核心收益

  1. 類型安全
  2. 減少裝箱/拆箱 (值型別專屬優勢)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved