[ C# ] - 泛型簡介與實作

  • 536
  • 0
  • 2021-09-10

泛型為了解決MVC上容易出現的資料型別問題,讓編譯器能協助預防型別處理的問題。

泛型的目的就是讓一個類別可以相容於不同的資料型別,實質型別或參考型別都能夠使用

 * 引用這篇所講的 

泛型讓我們設計出使不同型別藉由套板之後,可以執行相同的行為,在 C# 中最常使用的泛型型別之一就是 List<T>,相信大家對這個型別應該不陌生。

常用的集合類別如 List Dictionary Hashtable Stack Queue都有支援泛型型別,

泛型由類別與型別參數組成如:List<T> List就是類別名稱 <T>則為此類別的泛型類別,

也有如 Dictionary<TKey, TValue> 極為兩個不同型別,分別代表型別與值,

設計泛型類別時有兩個要特別注意:1. 類別允許那些型別使用 2. 程式中如何處裡型別

1.建立一個介面並規定兩個方法

public interface ISortTable
{
   void Sort();

   void SortDesc();
}

2.建立泛型類別並規定傳入的型別必須為ISortTable 介面  

public class SortUtil<T> where T : ISortTable
{
  public void Sort(T target)
  {
      target.Sort();
  }

  public void SortDesc(T target)
  {
      target.SortDesc();
  }
}

3.建立SortClass類別並繼承介面後實作介面的兩個方法

public class SortClass : ISortTable
{
   public void Sort()
   {
     Console.WriteLine("Sort() called ...");
   }

    public void SortDesc()
    {
        Console.WriteLine("SortDesc() called ...");
    }
}

4.即可在主程式介面方法處裡呼叫的工作

SortUtil<SortClass> data = new SortUtil<SortClass>();
SortClass sl = new SortClass();
data.Sort(sl);
data.SortDesc(sl);

5.印出