我看到了这个代码示例,想知道new()
约束的目的是什么:
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
我看到了这个代码示例,想知道new()
约束的目的是什么:
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
这被称为“'新'约束”。 这是关于它的文档。
新约束指定泛型类声明中的任何类型参数都必须具有公共无参数构造函数。要使用新的约束,类型不能是抽象的。
(强调我的)
基本上,每当你T
在类中的某个地方创建一个新的地方时,你都需要它,以确保你只能传递编译器可以创建一个新实例的东西。
Client
是T
对象的集合,这些T
对象必须实现IClientFactory
接口并具有公共无参数构造函数。