C# 中泛型与非泛型?(摘)

2021-05-05 00:29

阅读:677

标签:但我   实例   编译   通用   string   run   多个   提高   stack   

我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。

泛型用用一个通过的数据类型T来代替object,在类实例化时指定T的类型,运行时(Runtime)自动编译为本地代码,运行效率和代码质量都有很大提高,并且保证数据类型安全。

C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类,所以不同的封闭类的本地代码是不一样的。

按照这个原理,我们可以这样认为:泛型类的不同的封闭类是分别不同的数据类型。

 

C# 泛型集合之非泛型集合类与泛型集合类的对应:

ArrayList对应List

HashTable对应Dictionary

Queue对应Queue

Stack对应Stack

SortedList对应SortedList

 

未完待续

C# 中泛型与非泛型?(摘)

标签:但我   实例   编译   通用   string   run   多个   提高   stack   

原文地址:http://www.cnblogs.com/oralig/p/7694680.html


评论


亲,登录后才可以留言!