泛型
泛型的定义:泛型,就是创建使用通用类型的类或方法。
泛型的优点:
(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());
}
}