泛型的本质

1、和其他语言中的参数化多态相比,区别在于泛型的编译时和运行时的语义。
2、泛型与参数化模板的主要区别是后者纯粹是基于编译时。参数化模块的实例在编译时展开为不同的类
3、CLR执行泛型类型智能展开
4、.NET FCL包含通用的集合类用于普通的数据算法,诸如堆栈、队列、动态数组和字典等,这些集合是基于对象的,其对性能有影响,妨碍了类型安全,而且有可能消耗可用的内存
5、参数化集合包含在System.Collections.Generic命名空间中
动态数组      List<T>
LIFO列表      Stack<T>
FIFO列表      Queue<T>
键/值对集合     Dictionary<K,V>
将当前对象与其他对象进行比较    IComparable<T>
比较两个对象    IComparer<T>
返回一个枚举器    IEnumerable<T>
定义一个枚举器    IEnumerator<T>

原文地址:https://www.cnblogs.com/changweihua/p/2174344.html