什么是新的()约束在一个类定义呢?(What does the new() constraint d

2019-07-04 21:43发布

我看到这个代码示例,想知道什么的目的, new()约束为:

public class Client<T> : IClient where T : IClientFactory, new()
{
    public Client(int UserID){ }
}

Answer 1:

这就是被称为“‘新’的约束”。 这里的文件就可以了。

新的约束规定,在一个泛型类声明的任何类型的参数必须有一个公共的无参数的构造函数 。 要使用新的约束,类型不能是抽象的。

(重点煤矿)

基本上,你需要它时,你正在创建一个新的T在某处类,以确保您只能在事情编译器可以创建一个新的实例来传递。



Answer 2:

Client是一家集T的对象,这些T的对象必须实现IClientFactory接口,并有一个公共的无参数构造函数。



Answer 3:

新的()方法

类型参数必须有一个公共的无参数的构造函数。 当与其他约束一起使用时,新的()的约束,必须最后指定。

参考MSDN上泛型约束



文章来源: What does the new() constraint do on a class definition?