c#中new()约束符有什么作用?

publicclassBaseClasswhereT:new(){publicTSomeMethod(){returnnewT();}}第一行的继承当中的new(),不是... publicclassBaseClasswhereT:new(){publicTSomeMethod(){returnnewT();}}第一行的继承当中的new(),不是很明白其作用... public class BaseClass where T : new() { public T SomeMethod() { return new T(); } } 第一行的 继承当中的new(),不是很明白其作用 展开 展开
 我来答
RomanticIslander
2020-06-19 · TA获得超过3661个赞
知道大有可为答主
回答量:3028
采纳率:29%
帮助的人:228万
展开全部
第一:where只用于泛型,所以应该是:
public
class
BaseClass<T>
where
T
:
new()
{
public
T
SomeMethod()
{
return
new
T();
}
}
第二:
where
T
:
new()的意思是,这个T必须有public构造函数,如果new
BaseClass<T>()的时候,这个T没有public
构造函数,将编译错误.
第三:
除了new(),where后面可以有好多种内容,去约束T.
比如:public
class
MyGenericClass<T>
where
T:IComparable
{
}等.
详情见:
http://msdn.microsoft.com/en-us/library/d5x73970.aspx
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式