泛型
2016-05-27 17:00
197 查看
泛型原理:初次编译时,首先生成IL代码和元数据,T只是作为类型占位符,不进行泛型类型的实例化;在进行JIT编译时,将以实际类型替换IL代码和元数据中的T占位符,并将其转换为本地代码,下一次对该泛型类型的引用将使用相同的本地代码
约束(通过where字句来实现)
T:new(),表示类型参数必须具有公共无参构造函数,有多个约束存在时,必须将new()约束置于最后
T:struct.表示类型参数必须是值类型
T:class,表示类型参数必须是引用类型,显然class和struct不能同时指定
T:基类名,表示类型参数必须是基类及其派生类型,例如T:Student。但是不能即指定约束基类,又指定class
T:接口名,表示类型参数必须是指定的接口或者实现了该接口的接口,可以定义多个接口约束
约束(通过where字句来实现)
T:new(),表示类型参数必须具有公共无参构造函数,有多个约束存在时,必须将new()约束置于最后
T:struct.表示类型参数必须是值类型
T:class,表示类型参数必须是引用类型,显然class和struct不能同时指定
T:基类名,表示类型参数必须是基类及其派生类型,例如T:Student。但是不能即指定约束基类,又指定class
T:接口名,表示类型参数必须是指定的接口或者实现了该接口的接口,可以定义多个接口约束
相关文章推荐
- 关于dB,那些你需要知道的常识
- 微信测试号的开发——网页授权
- Balanced Binary Tree
- 一种用FFmpeg直接录屏并直播的方法
- 利用JSP实现Ajax
- 利用几种语言的按钮事件特征破解软件
- Java并发编程之常用概念
- Win32 计时器消息 - WM_TIMER,SetTimer
- Android中糟糕的AsyncTask
- MVC简介
- NODE.JS querystring url
- JavaScript里的数组转化新方法Array.From
- #pragma hdrstop
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
- 正则表达式的学习及总结
- 微信中无法接收post方式传参的form表单中的数据的问题
- 模板类-bitset
- Graphviz从入门到不精通
- redis的学习资源
- Extmail邮件服务器centos搭建(一)