天天看点

C# 泛型generic的简单理解

根据MSDN的一段话:泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。使用泛型的类型参数T,避免运行时类型转换或装箱操作的代价和风险。

MSDN:《Microsoft Developer Network》(简称MSDN),是微软的一个期刊产品,专门介绍各种编程技巧。

generic:一般的,通用的,广泛的。(泛型:通用的,暂时没有指明类型,在创建对象时指明类型的一种技术)

举例:

定义一个类似堆栈存取的类A,在主方法里进行操作。A中定义的是int数组

C# 泛型generic的简单理解

可以看到,这里可以进行int类型数据的存取操作,但是如果是float类型呢,或者string类型呢?我们可以想到把int换成object(代码略)。那么,主方法中put时,用到了装箱,后面做加减(或其他)时用到了拆箱,如果数据量比较大,则就要付出比较大的代价和风险。那怎么办呢?-----用泛型

泛型写法:在类名称的后面用<T>表示,T表示一种暂未指明的类型,相关的地方用T表示,在类创建对象时才指明数据类型,这样,就不会产生装箱拆箱操作,大大提高了效率和安全性。如:

C# 泛型generic的简单理解

在C#的基础类库中,已经有很多泛型,如:

C# 泛型generic的简单理解