我要投搞

标签云

收藏小站

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

当前位置:盛源彩票 > 泛型接口 >

什么是泛型

归档日期:04-25       文本归类:泛型接口      文章编辑:爱尚语录

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

  知道合伙人软件行家采纳数:11011获赞数:23645已经做过两个上架的app和两个网页项目.向TA提问展开全部泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。

  2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

  5、泛型的参数类型还可以是通配符类型。例如g.String);

  泛型还有接口、方法等等,内容很多,需要花费一番功夫才能理解掌握并熟练应用。

  展开全部泛型是公共语言运行时和编程语言提供的一种机制,它支持另外1种形式的代码重用,也就是算法重用.

  泛型包含泛型类,泛型接口,泛型委托,泛型方法,并非只包含简单的泛型类.在C#中,其他例如,属性,索引器,事件,操作符方法,构造器本身不能有类型参数T.

  T(类型参数),它的目的在于指明它操作的是一个未指定的数据类型,在源代码中能够使用数据类型的地方都可以使用它.

  其次,泛型类具有比非泛型更好的对象模型,例如,virtual方法的数量明显减少,从而获得更好的性能.

  在泛型类实例化时,用具体的类型来代替T即可,就相当于当初定义了一个成员为这个具体类型的类。

  个人理解,就是C++中的模板,定义一个类相当于定义了多个类,因为可以用不同的类型来代替T。并且可以实现强类型化。

  展开全部1 : 非泛型类容器来说,该容器的元素类型是 object ,使用方便,无须指定具体的元素类型。但是这种使用上的方便带来了惨重的性能上的损失,因为,我们每次插入一个元素就要经过一次 “ 装箱 ” 操作,每次访问一个元素就要经过一次 “ 拆箱 ” 操作。

  2 : “ 泛型 ” 容器就不一样了,这种类型的容器和 C++ 里的容器 ( 比如 vector 、 map 、 list 等 ) 一样,在使用的时候都要指定元素类型,并且在 “ 编译阶段 ” 完成类型制定,而且也避免了 “ 装箱、拆箱、类型转换 ” 等无谓的性能损失。

  我们知道c#是强类型语言。每个操作都有严格的类型规定。但是东西太严格了,难免教条和僵硬。所以在net2 就引入了泛型。

  为啥要引入泛型?道理很简单,因为我们要复用一些抽象逻辑。OO虽然有继承,多态,重载,甚至还有接口,但是所有操作都必须在同一个谱系里面。如果是要复用不同体系的逻辑,非泛型就显得死板很多了。

  排序是一个可复用的逻辑。我们在c#里可以用Array.sort()排序,也可以用linq 的orderby

  net1.0 时候Array.sort 就是一个非泛型的排序,用他排序就要求列表必须处于具有可排序接口这个谱系下的对象,假设对象不在这个谱系下,你必须临时扩展一个带有可排序接口的比较对象出来,这方法才能正常运作

  而net3.0后出的linq.orderby 则是一个泛型排序方法。用这个方法排序,并不要求对象必须具有那个排序接口。int可以排序,string可以排序,人可以比较身高也可比较美丑。

  展开全部在使用ArrayList这样的非泛型集合的过程中,要进行装箱和拆箱操作,会有比较大的性能损失,

本文链接:http://buggystordera.com/fanxingjiekou/73.html

上一篇:没有了

下一篇:NET 泛型中的协变与逆变