泛型:支持值类型和引用类型,不支持枚举。
没有泛型属性。
泛型的好处:
源代码保护。使用泛型算法不需要访问算法的源码——相对于C++模板
类型安全——相对于ArrayList
更加清晰的源码——不需要拆箱,显示转换
更佳的性能——不用装箱。测试:循环1000万次,泛型List<T>与ArrayList分别用时0.1s和 2s
16.1 FCL中的泛型
List<T> 取代ArrayList
Directory<TKey, TValue>取代HashTable
Stack<T>,Queue<T>分别取代Stack,Queue
IList,IDirectory,ICollection,IEnumerator,IEnumerable,IComparer,IComparable分别由相 应的泛型接口(加上<T>)
16.3 泛型基础结构
这一节的前言很有意思:如何在已有的CLR中添加泛型:
创建新的IL泛型指令
修改元数据格式,以支持泛型参数/类型/方法
修改各种语言C#/VB.NET
修改编译器csc,使之生成新的IL泛型指令/元数据
修改JITer,使之可以处理新的IL泛型指令
创建新的反射成员:泛型参数/类型/方法
修改调试器
修改vs2005智能感知
时间: 2024-09-21 18:45:47