泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用。其实官方文档说明的很详细,我这边算是做个记录吧
泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能。泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。 简单的说,我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。
二、为什么使用泛型?
我们先来看一下下面的代码
static void Main(string[] args) { #region 方式一 普通方法 ShowInt(1); ShowStr("string1"); #endregion Console.ReadKey(); } public static void ShowInt(int num) { Console.WriteLine("输出INT型数据:{0}", num); } public static void ShowStr(string str) { Console.WriteLine("输出String型数据:{0}",str); }