我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019全年资料大全正版 > 泛型类 >

泛型和范型的区别是什么?

归档日期:08-24       文本归类:泛型类      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  在引入范型这个概念之前,回顾一下1.0或1.1中关于的Object类型的定义:

  因为Object本身是一个引用类型,是存放在Heap(堆)上的。对于其他引用类型和Object转换很容易实现。

  而值类型和Object类型转换需要引入两个用于object类型和值类型转换概念boxing和unboxing.

  a,首先检查是否转换回的类型是装包的类型,如果不是抛出一个InvalidCastException运行时错误.

  译时替换)执行效率增加了大量的copy的开销。所以在.NET Framewrok 2.0中引入范型来提高高面向对象程序多态性

  范型的实例化格式是使用需要使用的类型替换和封闭其中一个范型参数,例如:

  对于C++程序员,看上面关于范型的格式很快联系到了ISO C++当中的Template;

  在C++的Template编译后,没有编译带有Template的代码.而是通过一种宏的方式进行的替换过程.

  每次使用Template类型,编译器都会生成一个对应的类型代码.而不管是否个类型代码已经使用过了.

  在C#2.0中范型是在中间语言(IL)和公共语言运行时(CLR)支持的.

  对于值类型:会在JIT编译时候替换参数类型,如果存在以及编译特定类型的机器代码,将直接返回这段代码.

  理解C# 2.0范型是在实现是基于CLR支持的很重要啊,因为.NET的本质是和语言无关的.任何语言最后都是编译为中

  间语言,这样基于IL和CLR支持的范型可以运用到所有基于CLR实现的语言,例如:Visual Basic 2005等等.

本文链接:http://buggystordera.com/fanxinglei/930.html