更新:我的问题是为什么它在工厂的背景下有用?
我偶然发现了这篇文章http://weblogs.asp.net/gmilano/archive/2005/07/29/420980.aspx
public interface IFactory<T>
{
T Create();
}
public class Factory<T> : IFactory<T> where T : new()
{
public T Create()
{
return new T();
}
}
T:new()的含义是什么?为什么它在工厂的背景下有用?
创建某个类的实例的语法是什么?
答案 0 :(得分:3)
where T : new()
表示类型T
必须具有无参数的公共构造函数。
通常,当您想要实例化泛型类型时,您将使用它。
答案 1 :(得分:2)
where T : new()
是一个约束,这意味着类型参数T
必须具有公共无参数构造函数。
答案 2 :(得分:1)
T:New()
表示应作为参数传递给泛型类的类型应具有公共默认值parameterless constructor