泛型的作用和使用方法(泛型的作用)
今天数码之家小编天天来为大家解答以上的问题。泛型的作用和使用方法,泛型的作用相信很多小伙伴还不知道,现在让我们一起来看看吧!
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、泛型的出现会替换原来一部分使用多态的地方从而提高性能和带来更好的编译时检查,这样就不需要在子类和超类(接口)间频繁转换了。
本文就为大家分享到这里,希望小伙伴们会喜欢。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
近年来,随着国家各项政策的深入推进,“全面建成小康社会”这一宏伟目标已逐步成为现实。这不仅是对历史的庄...浏览全文>>
-
高考作为中国教育体系中最重要的考试之一,其试题的质量和难度直接影响着学生的学习方向和教学资源的分配。全...浏览全文>>
-
在几何学中,圆内接三角形是一个非常有趣且重要的研究对象。所谓圆内接三角形,是指三角形的所有顶点都位于同...浏览全文>>
-
真空拔罐器哪个牌子好?选购指南与推荐随着健康意识的提升,越来越多的人开始关注中医养生方法,而拔罐作为一...浏览全文>>
-
在日常生活中,我们常常听到关于黄金饰品的各种疑问,其中最常见的话题之一就是:“真金会掉色吗?”这个问题...浏览全文>>
-
在日常生活中,蜂蜜因其天然的甜味和丰富的营养价值而受到广泛欢迎。然而,市场上也充斥着许多掺假或劣质的蜂...浏览全文>>
-
藏红花是一种珍贵的中药材和调味品,因其独特的药用价值和浓郁的香气而备受推崇。然而,市场上也存在不少假冒...浏览全文>>
-
真好笑,我觉得自己就是一个笑话生活中总有一些时刻,让人忍不住自嘲一番。比如今天早上起床时,我发现自己穿...浏览全文>>
-
随着生活节奏的加快,越来越多的人选择通过外卖平台订购餐饮,其中真功夫作为中式快餐的代表品牌之一,备受消...浏览全文>>
-
在美食的世界里,烤串总能以其独特的风味吸引无数食客。提到烤串,你可能会想到“真功夫烤串”、“诸葛烤串”...浏览全文>>