当前位置:主页   - 电脑 - 网站开发 - ASP.Net
CLR笔记:16.泛型
来源:网络   作者:   更新时间:2012-02-25
收藏此页】    【字号    】    【打印】    【关闭

  泛型:支持值类型和引用类型,不支持枚举。

   没有泛型属性。

  泛型的好处:

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

  CLR为应用程序使用的每个类型创建一个内部数据结构,称为“类型对象”。

  具有泛型类型参数的一个类型class<T>,仍然是一个类型,也具有一个类型对象,称为“开放式类型”,CLR禁止构造开放式类型的实例;

  当T是一个实际类型时class<Guid>,称为“封闭式类型”,CLR中可以创建封闭式类型的实例。

  语法Activator.Creator(type):根据type获取其一个实例。有

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明