泛型的作用是支持什么类型(泛型的作用)
今天小编岚岚来为大家解答以上的问题。泛型的作用是支持什么类型,泛型的作用相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、它有什么优势?它对性能有影响吗?它在执行时的行为是什么?.NET BCL中有哪些泛型类型?举例说明平时编程中您定义的泛型类型。
2、 泛型的作用在于“算法的重用”。
3、(这点其实很好理解,原来的ArrayList只能接受Object,现在通过List可以接受任何类型,也就是说ArrayList的方法都被各个类型重用了。
4、但是Dot Net的泛型有个比较制肘地方,就是你很难对数值类型(值类型)进行算法抽象,因为这牵涉到运算符重载的问题,同时Dot Net的泛型的类型参数也不能约束成一个基元值类型(如int、double、float) 。
5、) 它有什么优势? 第一:源代码保护。
6、(如果你知道C++模板对泛型的实现机制,就会知道C++在编译的时候根据对泛型的调用,自动“内联”了一个实现,这样泛型的内容就暴露了,尔DotNet的实现方式就不同了,泛型类和方法会被编译成IL,在执行的时候由JIT负责将IL变化为指定类型参数的本地代码,从而保护了源代码) 第二:类型安全。
7、(这点是最显而易见的,抛弃了使用ArrayList时各种丑陋的强制类型转换) 第三:更清晰地代码。
8、因为没有了强制类型转换,所以代码自然显得更清晰,但是使用泛型时候带来的<>有时候确实也会让人搞糊涂,幸好泛型方法可以用类型推断或者using语句来进一步简化写法。
9、 第四:更好的性能,因为值类型可以避免装箱和拆箱所带来的损耗(垃圾回收的次数也会减少)。
10、(这点正是泛型神奇的地方,开发历史上抽象能力的上升往往意味着性能的下降,但是泛型却不是!泛型抽象了算法,但是C++和DotNet对泛型的实现能够让性能无损,并且更快。
11、Java的擦除法泛型就没有这种性能上的好处。
12、) 它对性能有影响吗? 对性能有积极的影响,因为值类型可以避免装箱和拆箱所带来的负面影响,避免了垃圾回收,使得性能显著提高。
13、但是对引用类型这种影响就不明显了。
14、但是需要注意的是首次为一个特定数据类型调用方法时,CLR都会为这个方法生成本地代码。
15、这会增大应用程序的工作集大小,从而影响性能。
16、 它在执行时的行为是什么? 使用泛型类型参数的一个方法在进行JIT编译时,CLR获取IL,用指定的类型实参进行替换,然后创建本地代码。
17、需要特别注意的是引用类型是共享代码的,而对值类型就会为每一种生成独立的一份类型代码。
18、但是需要指出的是引用类型的这种代码共享并不会造成封闭类型只执行一次构造函数(就算是静态构造函数也是这样的)。
19、 .NET BCL中有哪些泛型类型? List、Dictionary、Queue、Stack、SortedList和SortedDictionary、LinkedList等等。
20、 举例说明平时编程中您定义的泛型类型。
21、泛型的出现会替换原来一部分使用多态的地方从而提高性能和带来更好的编译时检查,这样就不需要在子类和超类(接口)间频繁转换了。
本文就为大家分享到这里,希望小伙伴们会喜欢。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
在快节奏的生活环境中,人们越来越关注身心健康的重要性。健康心理学作为一门新兴的交叉学科,正逐渐成为现代...浏览全文>>
-
在过去的2018年里,无数女性以她们的智慧、勇气和奉献精神,在各自的岗位上书写了不平凡的篇章。她们是新时代...浏览全文>>
-
在小学升初中这个关键阶段,数学作为一门核心科目,其重要性不言而喻。为了帮助学生们更好地应对即将到来的挑...浏览全文>>
-
在汉语中,“浑”字虽然看似简单,却蕴含着丰富的文化内涵和多样的表达方式。今天,我们就以“浑浊”中的“浑...浏览全文>>
-
在生活中,我们常常会遇到一些有趣的汉字,它们看似简单,却能组合出许多富有深意的词汇。今天,我们就来探讨...浏览全文>>
-
在日常的语言学习中,我们常常会遇到一些看似简单却充满趣味的汉字,比如“浑”字。这个字虽然不算复杂,但它...浏览全文>>
-
在古诗中,“浑欲不胜簪”这句诗出自唐代杜甫的《春望》。这句诗描绘了诗人面对战乱后国家破败、满目疮痍的景...浏览全文>>
-
在日常生活中,“浑水摸鱼”这个成语常用来形容那些趁乱占便宜或者混水摸鱼的人。那么,如何用它来造句呢?下...浏览全文>>
-
在日常交流中,我们常常会遇到一些成语需要了解其拼音,比如“浑水摸鱼”。这个成语用来形容那些在混乱中谋取...浏览全文>>
-
在我们的日常生活中,常常会遇到一些有趣的谜语,它们既能锻炼我们的思维能力,又能增加生活的乐趣。今天,我...浏览全文>>