泛型

    先前做项目中常用IList<WfmUserName>的类型,知道这是泛型,但没有对泛型系统深刻的加以学习,今天

 

抽空学习了下:

 

   1 泛型是CLR(通用语言运行时)2.0的一个新特性.

  

   2 为什么会出现泛型呢?泛型的提出是为解决哪类问题的呢?

 

                     ----------在CLR1.0中要创建一个灵活的类或方法(该类或方法在编译期间不知道使用什

 

么类),就必须以Object类(Object类在编译期间没有类型安全性的)为基础,因此必须进行强制类型

 

转换。另外,给值类型使用Object类会有性能损失.所以泛型的出现可以轻松应对

 

  3 泛型的优缺点:

 

    1性能提高

 

       我们知道装箱和拆箱操作很容易使用,但性能损失比较大.泛型的使用避免了装箱和拆箱的

 

操作. 例如下面的一小段代码:      

       

 

使用泛型可以改为下面的代码:

 

 

  2是类型安全的

  

   还那ArrayList做说明,看下面列子

  

 

   可以发现上面的代码编译器能够编译通过,但在程序运行的时候会在迭代方法中抛出异常,错误应

 

该是尽早发现,使用下面的代码后你会发现在编译阶段错误就被发现了

 

 

对某些书里头讲到的二进制代码的重用,代码扩展以及命名约定不是很了解

创建泛型类的注意事项:

   在创建泛型类时,需要一些其他C#关键字。(eg不能把null赋予泛型类型,可以使用default关键字.根据泛型类型是引用类型还是值类型,default关键字用于将泛型类型初始化为null0。如果泛型类型不需要Object类的功能,但需要调用泛型类上的某些特定方法,就可以定义约束

泛型类的静态成员只能在类的一个实例中共享

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值