泛型為了解決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.印出
