我看到这个代码示例,想知道什么的目的, 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
接口,并有一个公共的无参数构造函数。
新的()方法
类型参数必须有一个公共的无参数的构造函数。 当与其他约束一起使用时,新的()的约束,必须最后指定。
参考MSDN上泛型约束