我认为这是一个简单的问题,但我找不到正确的答案。 这个语法是什么意思?我对这一行末尾的 new()感到困惑:
public abstract class SomeClass<E> : Controller where E : ISomeInterface, new()
{
//code of the abstract class
}
答案 0 :(得分:11)
新约束指定泛型类声明中的任何类型参数都必须具有公共无参数构造函数。要使用新约束,类型不能是抽象的。
答案 1 :(得分:3)
你宣布:
SomeClass
,取决于类型E
; E
为ISomeInterface
或任何实现/派生自ISomeInterface
的类型; new
constraint)。答案 2 :(得分:1)
new()意味着您可以像var e = new E();
那样实例化类答案 3 :(得分:1)
与课堂摘要无关。它是泛型类型参数的约束,这意味着类型参数应该具有无参数构造函数。
答案 4 :(得分:1)
这意味着SomeClass
是一个继承自Controller
类的通用抽象类。
泛型类型E
被限制为实现接口ISomeInterface
并且必须具有构造函数(它应该被初始化)