泛型原理解析 (Review)
1.Generic 泛型是什么
一句话概括:相同需求不同类型的抽象.
1.1.net2.0 后出现了泛型的概念
是类,是 API,是结构,是 CLR 定义的.
创建独立于被包含类型的类和方法,不必给不同的类型编写功能相同的许多方法或类,
只创建一个方法或类即可. 这段是书里的写的,文绉绉的.
IL 后其实是一个类,带占位符
因为 T 在调用的时候才指定类型,所以可以支持不同的类型参数,保证了类型安全.
1.2 设计思想:
延迟声明,推迟一切可以推迟的 声明时不指定,调用时指定.(metadata)
2.为什么是泛型(解决了什么问题,怎么用)
解决了
性能,类型安全,二进制代码重用,代码扩展,命名约定
2.1 性能
2.1.1 避免拆装箱
复制代码
2.1.2 类型安全
复制代码
2.2 二进制代码重用
泛型类定义一次,可以允许不同的类型实例化,不需要像 C++需要访问源码.
2.3 代码扩展
2.4 命名约定
泛型类新的名称使用 T 作为前缀
没有特殊要求泛型类允许使用任意类型代替,且只使用了一个泛型类型就可以用字符 T 作为泛型类型的名称.
复制代码
3.泛型类,泛型方法 相同需求不同类型的抽象
3.1 默认值
复制代码
3.2 约束
where T:BaseModel
类型安全,方便调用,密封类不能约束没有意义
复制代码
版权声明: 本文为 InfoQ 作者【Puciu】的原创文章。
原文链接:【http://xie.infoq.cn/article/27b857e39a04dd93601a6a826】。文章转载请联系作者。
评论