问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是泛型,泛型的作用是什么(泛型有什么作用)

发布网友 发布时间:2024-09-15 01:36

我来回答

1个回答

热心网友 时间:2024-11-07 02:25

什么是泛型

泛型。即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型是在C#2.0引入的。泛型(Genericity)的字面意思是指具有在多种数据类型上皆可操作的含意,与模板有些相似。

泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。

优点:

泛型方法可以出现在泛型或非泛型类型上。需要注意的是,并不是只要方法属于泛型类型,或者甚至是方法的形参的类型是封闭类型的泛型参数,就可以说方法是泛型方法。只有当方法具有它自己的类型参数列表时,才能称其为泛型方法。在下面的代码中,只有方法G是泛型方法。

泛型的作用是什么?

它有什么优势?它对性能有影响吗?它在执行时的行为是什么?.NETBCL中有哪些泛型类型?举例说明平时编程中您定义的泛型类型。泛型的作用在于“算法的重用”。(这点其实很好理解,原来的ArrayList只能接受Object,现在通过List可以接受任何类型,也就是说ArrayList的方法都被各个类型重用了。但是DotNet的泛型有个比较制肘地方,就是你很难对数值类型(值类型)进行算法抽象,因为这牵涉到运算符重载的问题,同时DotNet的泛型的类型参数也不能约束成一个基元值类型(如int、double、float)。)它有什么优势?第一:源代码保护。(如果你知道C++模板对泛型的实现机制,就会知道C++在编译的时候根据对泛型的调用,自动“内联”了一个实现,这样泛型的内容就暴露了,尔DotNet的实现方式就不同了,泛型类和方法会被编译成IL,在执行的时候由JIT负责将IL变化为指定类型参数的本地代码,从而保护了源代码)第二:类型安全。(这点是最显而易见的,抛弃了使用ArrayList时各种丑陋的强制类型转换)第三:更清晰地代码。因为没有了强制类型转换,所以代码自然显得更清晰,但是使用泛型时候带来的有时候确实也会让人搞糊涂,幸好泛型方法可以用类型推断或者using语句来进一步简化写法。第四:更好的性能,因为值类型可以避免装箱和拆箱所带来的损耗(垃圾回收的次数也会减少)。(这点正是泛型神奇的地方,开发历史上抽象能力的上升往往意味着性能的下降,但是泛型却不是!泛型抽象了算法,但是C++和DotNet对泛型的实现能够让性能无损,并且更快。Java的擦除法泛型就没有这种性能上的好处。)它对性能有影响吗?对性能有积极的影响,因为值类型可以避免装箱和拆箱所带来的负面影响,避免了垃圾回收,使得性能显著提高。但是对引用类型这种影响就不明显了。但是需要注意的是首次为一个特定数据类型调用方法时,CLR都会为这个方法生成本地代码。这会增大应用程序的工作集大小,从而影响性能。它在执行时的行为是什么?使用泛型类型参数的一个方法在进行JIT编译时,CLR获取IL,用指定的类型实参进行替换,然后创建本地代码。需要特别注意的是引用类型是共享代码的,而对值类型就会为每一种生成独立的一份类型代码。但是需要指出的是引用类型的这种代码共享并不会造成封闭类型只执行一次构造函数(就算是静态构造函数也是这样的)。.NETBCL中有哪些泛型类型?List、Dictionary、Queue、Stack、SortedList和SortedDictionary、LinkedList等等。举例说明平时编程中您定义的泛型类型。泛型的出现会替换原来一部分使用多态的地方从而提高性能和带来更好的编译时检查,这样就不需要在子类和超类(接口)间频繁转换了。

什么是泛型?他有什么优点?

泛型。即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型是在C#2.0引入的。泛型(Genericity)的字面意思是指具有在多种数据类型上皆可操作的含意,与模板有些相似。

优点:

泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。泛型通常用与集合以及作用于集合的方法一起使用。

泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

扩展资料

泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。

参考资料泛型_百度百科

泛型的作用

泛型(Generictype或者generics)是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

可以在集合框架(Collectionframework)中看到泛型的动机。例如,Map类允许您向一个Map添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如String)的对象。

因为Map.get()被定义为返回Object,所以一般必须将Map.get()的结果强制类型转换为期望的类型,。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 ...银行工作人员会询问巨额来源吗?警察会调查干涉巨额来源吗_百度知 ... 高中语文课文《滕王阁序》中哪些句子是用典? rs1a- rs1m二极管参数有什么? 前端开发工程师需要具备哪些能力(前端开发培训一般几个月) 二极管铅锡豁免条件是什么 web前端工程师工作内容? Web前端研发工程师职位要求 四级赋分制通过率 鼻畸形唇裂鼻畸形修复术的适应症: 鼻翼宽大下垂怎么办 当我们睡觉时,头部下垂后会立即醒来,接受这一刺激的感受器位于 A鼓室... 谷神怎么造句 女人前庭会因为生孩子而下垂吗 word如何隐藏修订痕迹 word如何去除修订痕迹? 怎么让word修改的痕迹不显示? word修订如何不显示 如何删除word修订痕迹? 梦见妈妈死了,大哭,哭醒了。妈妈得了一种系统病,是很少见的一种病,如果... ...在4000到5000之间的,有那几款,要质量好的。大虾帮忙 HP LaserJet1536dn激光一体机怎么扫描? HP color laserj hp复印一体机使用方法 打印机买惠普还是联想 详解TypeScript中的泛型 ...怎么用扫描仪(请教高手HP2060打印复印扫描一体机怎么使用扫描功能... 如何使用hp m113nf一体机扫描功能? 惠普HP M1136主要性能 HP2060打印复印扫描一体机的扫描驱动如何安装并操作? HP Color LaserJet 2820详细参数 外接显示器怎么设置耳机? HDMI线连接显卡和显示器声音从哪里出来? 晚上吃蜜糊桃有什么好处 苹果6splus发烫是什么原因 帮忙写个 朝花夕拾中 狗猫鼠 阿长与山海经的梗概不能太短400字... 层组词(层组词有哪些) 结核病因该怎样吃健康的食物不能吃那些食物 和平精英火力对决中洋房密室在哪和平精英火力对决中洋房密室的位置 和平精英活力对决哪里有密室和平精英活力对决密室介绍 电脑声卡大约多少钱 为什么手机一直黑屏开不了机?