海纳百川,有容乃大;壁立千仞,无欲则刚。
温州人才网:http://www.myjob123.net | 南昌免费人才网:http://www.0791hr.net/
博客园
首页
新闻
新随笔
联系
管理
订阅
随笔- 102 文章- 2 评论- 582
2007年6月9日
where泛型约束
where用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量.如下:
public class MyGenericClass<T> where T:IComparable { }
除了接口约束,where还可以包括基类约束,以指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型的类型参数.如下:
class MyClassy<T, U>
where T : class
where U : struct
{
}
where还可以包括构造函数约束,可以使用new运算符创建类型参数的实例;但类型参数必须受构造函数约束new()的约束.new()约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数构造函数,如下:
public class MyGenericClass <T> where T: IComparable, new()
{
// The following line is not possible without new() constraint:
T item = new T();
}
对于多个类型参数,每个类型参数都使用一个where,例如:
class Dictionary<TKey,TVal>
where TKey: IComparable, IEnumerable
where TVal: MyI
{
public void Add(TKey key, TVal val)
{
}
}
还可以将约束附加到泛型方法的类型参数,例如:
public bool MyMethod<T>(T t) where T : IMyInterface { }
注意:对于委托和方法两者来说,描述类型参数约束的语法是一样的:
delegate T MyDelegate<T>() where T : new()
posted @ 2007-06-09 11:08 有容乃大 阅读(750) 评论(0)
编辑
公告
昵称:
有容乃大
园龄:
6年4个月
粉丝:
28
关注:
9
<
2007年6月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
更多链接
我的标签
actionscript3
(8)
as3
(8)
flex
(8)
flash
(8)
代码生成器
(7)
remoting
(5)
fluorinefx
(5)
sqlserver
(3)
帮助
(2)
mysql
(2)
随笔分类
.net第三方控件(3)
(rss)
.Net项目开发(22)
(rss)
Asp.net(3)
(rss)
Bug
(rss)
C#
(rss)
CSS(3)
(rss)
Flex开发(13)
(rss)
IE
(rss)
JS脚本(6)
(rss)
Silverlight 4(2)
(rss)
Sql Server(2)
(rss)
Windows开发相关(1)
(rss)
答疑
(rss)
泛型(1)
(rss)
控件开发(1)
(rss)
设计模式(1)
(rss)
生活(2)
(rss)
提问(1)
(rss)
我的代码(2)
(rss)
业界新闻(2)
(rss)
转载(1)
(rss)
随笔档案
2011年10月 (1)
2011年9月 (2)
2011年8月 (2)
2011年7月 (1)
2011年6月 (1)
2011年5月 (1)
2011年3月 (1)
2010年12月 (1)
2010年9月 (1)
2010年7月 (1)
2010年6月 (1)
2010年3月 (2)
2010年1月 (1)
2009年11月 (2)
2009年9月 (1)
2009年8月 (1)
2008年12月 (1)
2008年11月 (3)
2008年10月 (1)
2008年9月 (6)
2008年8月 (2)
2008年4月 (2)
2008年3月 (15)
2008年1月 (1)
2007年9月 (1)
2007年8月 (1)
2007年7月 (4)
2007年6月 (10)
2007年5月 (4)
2007年4月 (1)
2007年3月 (1)
2006年12月 (3)
2006年11月 (3)
2006年10月 (4)
2006年9月 (2)
2006年8月 (4)
2006年6月 (1)
2006年4月 (1)
2006年2月 (1)
2006年1月 (2)
2005年12月 (3)
2005年11月 (3)
2005年10月 (1)
2005年9月 (1)
文章分类
脚本(2)
(rss)
相册
博客调用
我的一家
婺源
数据库
ASP.NET Atlas学习
Atlas学习手记系列
http://dflying.cnblogs.com/
IIS 二级域名
JoyCode
Lucene.net
关于二级域名Cookie的问题及解决方法
实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
天轰穿.net/vs2005/ajax入门
最新评论
阅读排行榜
评论排行榜
推荐排行榜