C# 中泛型与非泛型?(摘)
2021-05-05 00:29
标签:但我 实例 编译 通用 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