码迷,mamicode.com
首页 > 其他好文 > 详细

泛型约束 where T : class,new()

时间:2016-08-08 12:26:38      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:

假如有这样一个方法签名

public List<T> GetSomethingList<T> (int a,int b,string c) where T:class,new()
{
   ...
}

这表示GetSomethingList是个泛型方法,调用的时候需要确定T到底是什么类型,但这里类型T需满足 where T:class,new() 这个条件,

其中 where T:class,表示T必须是引用类型(而不是int等值类型,或者ValueType的其他子类),new()表示这个类型T还必须至少具备一个无参的构造函数(还可以有其他有参数的构造函数)。

如果对类型T只要求其中一个条件,可以写成

 

1where T:class //表示T必须是引用类型

2where T:new() //表示这个类型T还必须至少具备一个无参的构造函数

 

泛型约束 where T : class,new()

标签:

原文地址:http://www.cnblogs.com/aaronhoo/p/5748675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!