And*_*i V 5 c# generics constraints
我想知道在定义泛型类时是否有"class"和"new()"约束是否合理.如下例所示:
class MyParanoidClass<T> where T : class, new()
{
//content
}
Run Code Online (Sandbox Code Playgroud)
两个约束都指定T应该是引用类型.虽然"类"约束并不意味着隐式构造函数存在,但"new()"约束确实需要带有附加公共构造函数定义的"类".
我的最后一个问题是:我在上面的语句中定义泛型类是否有任何好处,或者"new()"是否封装了两个约束?
new()并不意味着引用类型,因此:不,class使用时不冗余new().
以下代码演示了:
void Main()
{
new MyParanoidClass<S>();
}
struct S {}
class MyParanoidClass<T> where T : new()
{
//content
}
Run Code Online (Sandbox Code Playgroud)
此代码编译,证明new()您不关心是否使用引用或值类型.