泛型
泛型的定義:泛型,就是創建使用通用類型的類或方法。
泛型的優點:
(1)如果實例化泛型類型的參數相同,那麼JIT編譯器會重複使用該類型。
(2)C#的泛型類型可以應用於強大的反射技術。
(3)C#的性能高,我們知道ArrayList添加元素時都是object類型,如果添加一個值類型,就需要把它轉換爲引用類型,當取出這個元素的時候又要將其轉換爲值類型,這就需要裝箱和拆箱的操作,性能降低。而泛型無需類型的轉換操作。
(4)C#除可單獨聲明泛型類型(包括類與結構)外,也可在基類中包含泛型類型的聲明。但基類如果是泛型類,它的類型參數要麼已實例化,要麼來源子類(同樣是泛型類型)聲明的類型參數。
定義泛型的方法:
public void Swap<T>(ref T a, ref T b)
{
T temp;
temp = a;
a = b;
b = temp;
}
一個泛型方法是在方法名稱後、參數列表前定義類型參數的。上面的方法中,可以操作任意兩個<T>類型的參數。
泛型列表 List<T>
泛型集合Queue<T>和Stack<T>:
Queue<int> qu = new Queue<int>();
for (int i = 0; i < 10; i++)
{
qu.Enqueue(i);
}
for (int i = 0; i < 10; i++)
{
Response.Write(qu.Dequeue().ToString());
}
Response.Write("<br/>========================<br/>");
Stack<int> st = new Stack<int>();
for (int i = 0; i < 10; i++)
{
st.Push(i);
}
for (int i = 0; i < 10; i++)
{
Response.Write(st.Pop().ToString());
}
}