System.Collection.Generics命令空间中,包含大量类和接口,其中的接口也都模拟了System.Collections命名空间下相应的非泛型类型。
如:
ICollection<T>
IComparer<T>
IDictionary<TKey,TValue> //泛型字典
IEnumerable<T>
IEnumerator<T>
IList<T> //泛型列表
那下面来看看怎样来定义一个泛型方法呢?
public void Swap<T>(ref T a,ref T b)
{
//里面写函数体就可以了
}
T这里的T相当于Object类型了
对了我们除了这些之外还可以创建泛型的集合Queue<T> 和Stack<T>
使用泛型有什么好外呢?下面我们来看下吧?
大家一定都知道ArrayList 是一个使用起来非常方便的集合类,无需进行修改即可用来存储任何引用或值类型。我们可以向其中.add任何类型的数据但是,添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。同这也导致了其不是十分的安全