C#泛型机制简介

C#的泛型机制算是挺早引入的,早在 2.0 就有了,跟 Java 那一套泛型思路有点像,但性能表现上更靠谱些。以前用Object搞通用结构,写是能写,就是到处装箱拆箱,效率堪忧。泛型一上来,类型安全有了,效率也提上来了,尤其像ListDictionary这些集合类,全靠它撑场子。

泛型方法也挺灵活的,比如你想写个能比较任意类型大小的函数,只要加个约束:where T : IComparable,编译器就能帮你看住类型合法性了。你要比较两个数字谁大,就能直接用,不用再写重复代码。

泛型继承也是一大亮点。你可以定义一个通用的父类,比如BaseList,子类自己指定具体类型,像DerivedList : BaseList这样。这样写,复用度高,逻辑也清晰。

另外泛型跟反射配合起来还蛮妙的,像动态创建某个泛型类型的实例,在框架级开发挺常用。比如你写个 ORM 框架,泛型+反射组合拳,基本能搞定大部分类型转换和对象初始化的需求。

C#的泛型用好了,代码更整洁也更高效。建议你多写写泛型类和方法,顺便看看这篇 List 的泛型实战,还挺有参考价值。

doc 文件大小:199.5KB