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(),不是很明白其作用 展开
展开
1个回答
展开全部
第一: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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询