【发布时间】:2012-11-28 04:52:54
【问题描述】:
我看到了这个代码示例,想知道new() 约束的目的是什么:
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
【问题讨论】:
标签: c# oop class inheritance polymorphism
我看到了这个代码示例,想知道new() 约束的目的是什么:
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
【问题讨论】:
标签: c# oop class inheritance polymorphism
这称为“'新'约束”。 Here's the documentation 就可以了。
新约束指定泛型类声明中的任何类型参数都必须具有公共无参数构造函数。要使用新的约束,类型不能是抽象的。
(强调我的)
基本上,每当您在类中的某处创建新的T 时,您都需要它,以确保您只能传递编译器可以创建新实例的东西的。
【讨论】:
【讨论】:
Client 是T 对象的集合,这些T 对象必须实现IClientFactory 接口并具有公共的无参数构造函数。
【讨论】: