首页 > 代码库 > c#-FrameWork02泛型
c#-FrameWork02泛型
泛型
l 泛型(generic)编程是一种编程范式,它利用”参数化类型”将类型抽象化,从而可以实现更为灵活的复用.把数据类型参数化
sh泛型集合
泛型集合与集合的对比
泛型集合类 | 非泛型集合类 |
List<T> | ArrayList |
Dictionary<Tkey,Tvalue> | HashTable |
Stack<T> | Stack |
Queue<T> | Queue |
sortedDictionary<Tkey,Tvalue> | sortedList |
泛型集合的优点
提供了一个强类型的编程模式(类型安全)
减少了拆箱装箱
性能得到提高
减小了内存消耗
泛型类,方法
l 泛型(generic)编程是一种编程范式,它利用”参数化类型”将类型抽象化,从而可以实现更为灵活的复用.把数据类型参数化
l 优点:
- 缓解代码膨胀的情况
- 提供了一个强类型的编程模型,类型安全
- 编译时类型检查减小了运行时转换异常的几率
- 不需要装箱操作
- 性能提高
- 减小了内存消耗
语法:
Class person<T> where T:约束的条件
{
Public T1 out<T1>(T1 a,T1 b) where T:条件
{
//语句
}
}
l 泛型参数的约束: Where T:constrain1,constrain2 constrain1,constrain2是约束内容
约束 | 定义 |
struct | 类型是值类型 |
Class | 类型是引用类型 |
Base class | 类型必须是基类或继承自基类 |
interface | 类型必须是接口或实现接口的方法 |
New () | 类型必须是一个无参的构造函数 |
约束条件:
值类型----struct
引用类型---- class
实现接口---- 接口名字
基类或继承自基类----基类名字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。