C# 泛型generic的简单理解
2016-08-15 10:23
337 查看
根据MSDN的一段话:泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。使用泛型的类型参数T,避免运行时类型转换或装箱操作的代价和风险。
MSDN:《Microsoft Developer Network》(简称MSDN),是微软的一个期刊产品,专门介绍各种编程技巧。
generic:一般的,通用的,广泛的。(泛型:通用的,暂时没有指明类型,在创建对象时指明类型的一种技术)
举例:
定义一个类似堆栈存取的类A,在主方法里进行操作。A中定义的是int数组
可以看到,这里可以进行int类型数据的存取操作,但是如果是float类型呢,或者string类型呢?我们可以想到把int换成object(代码略)。那么,主方法中put时,用到了装箱,后面做加减(或其他)时用到了拆箱,如果数据量比较大,则就要付出比较大的代价和风险。那怎么办呢?-----用泛型
泛型写法:在类名称的后面用<T>表示,T表示一种暂未指明的类型,相关的地方用T表示,在类创建对象时才指明数据类型,这样,就不会产生装箱拆箱操作,大大提高了效率和安全性。如:
在C#的基础类库中,已经有很多泛型,如:
MSDN:《Microsoft Developer Network》(简称MSDN),是微软的一个期刊产品,专门介绍各种编程技巧。
generic:一般的,通用的,广泛的。(泛型:通用的,暂时没有指明类型,在创建对象时指明类型的一种技术)
举例:
定义一个类似堆栈存取的类A,在主方法里进行操作。A中定义的是int数组
可以看到,这里可以进行int类型数据的存取操作,但是如果是float类型呢,或者string类型呢?我们可以想到把int换成object(代码略)。那么,主方法中put时,用到了装箱,后面做加减(或其他)时用到了拆箱,如果数据量比较大,则就要付出比较大的代价和风险。那怎么办呢?-----用泛型
泛型写法:在类名称的后面用<T>表示,T表示一种暂未指明的类型,相关的地方用T表示,在类创建对象时才指明数据类型,这样,就不会产生装箱拆箱操作,大大提高了效率和安全性。如:
在C#的基础类库中,已经有很多泛型,如:
相关文章推荐
- C# 泛型的简单理解(安全、集合、方法、约束、继承)分享
- C# 泛型的简单理解(安全、集合、方法、约束、继承)
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 1.用C#的泛型实现简单的工厂模式
- C# 简单链表的实现下(使用泛型)
- 【C#食谱】【面食】菜单2:理解泛型
- C# 2005如何根据类型声明的字符串反射创建泛型(Generic)对象
- c# interface 的理解(工厂模式)简单实例
- 泛型的简单理解和应用
- c# 泛型的理解(转)
- 我关于c#中委托的简单理解
- C# 实现多态的的简单易学的例子-实现不同的用户登录到不同的界面(用抽象类,抽象方法实现的多态)加上泛型来实现
- C# Corner - C# 2.0 中的泛型的简单介绍(译)
- c#编程指南(三) 泛型委托(Generic Delegate)
- c#3.5关于JSON简单操作的实用帮助类(泛型实现)
- C#不是C++ 之 泛型(Generic)
- c# interface 的理解(工厂模式)简单实例
- C#2.0泛型介绍之简单泛型类。
- [转]Understanding Generic Type, 理解泛型 (转自博客园“我回来”) 学习了,望谅解
- [C#.NET][VB.NET] 一般 / 泛型 Generic Collection 集合型別介紹