泛型

1. 所谓泛型,即通过参数化类的类型来实现代码的复用。这句话比较拗口,言外之意就是声明将类型抽象化,通过参数来告诉类是什么类型,这样在JIT时候可以根据不同的类型参数,产生不同的类型实例。如:声明Stack <t>泛型后,可以用Stack<int>  x = new Stack<int>()来实例化;

2. 泛型的好处有4点: a. 是赋予代码更强的类型安全,b. 代码复用 c. 更高的效率 d. 更清晰的约束。

3. 泛型的机制:a. 第一轮编译时,编译器只为Stack<T>(栈算法)类型产生“泛型版”的IL代码与元数据-----并不进行泛型类型的实例化,T在中间只充当占位符

  b. JIT编译时,当JIT编译器第一次遇到Stack<int>时,将用int替换“泛型版”IL代码与元数据中的T---进行泛型类型的实例化。CLR为所有类型参数为“引用类型”的泛型类型产生同一份代码;但如果类型参数为“值类型”,对每一个不同的“值类型”,CLR将为其产生一份独立的代码。

4. CLR为所有类型参数为“引用类型”的泛型类型产生统一份代码,但是对于“值类型”的参数,则每个不同的值类型参生一份独立的代码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值