Welcome

首页 / 软件开发 / .NET编程技术 / CLR笔记:16.泛型

CLR笔记:16.泛型2011-10-26 博客园 包建强泛型:支持值类型和引用类型,不支持枚举。

没有泛型属性。

泛型的好处:

源代码保护。使用泛型算法不需要访问算法的源码——相对于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智能感知