A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SUN_Q 中级黑马   /  2013-7-15 21:33  /  993 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型是在C#2.0引入的。泛型(Genericity)的字面意思是指具有在多种数据类型上皆可操作的含意,与模板有些相似。泛型引入了类型参数化的概念,旨在实现定义的泛型类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。您可以编写其他客户端代码能够使用的单个类,而不致引入运行时强制转换或装箱操作的成本或风险。为了使用这些强有力的数据结构,你所要做的仅是提供数据类型。
C#泛型的几个特点:
(1)如果实例化泛型类型的参数相同,那么JIT编译器会重复使用该类型。
(2)C#的泛型类型可以应用于强大的反射技术。
(3)C#的性能高,我们知道ArrayList添加元素时都是object类型,如果添加一个值类型,就需要把它转换为引用类型,当取出这个元素的时候又要将其转换为值类型,这就需要装箱和拆箱的操作,性能降低。而泛型无需类型的转换操作。
(4)C#除可单独声明泛型类型(包括类与结构)外,也可在基类中包含泛型类型的声明。但基类如果是泛型类,它的类型参数要么已实例化,要么来源子类(同样是泛型类型)声明的类型参数。

1 个回复

倒序浏览
楼主问的问题相当抽象。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马