更新:2007 年 11 月

new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。如果要使用 new 约束,则该类型不能为抽象类型。

示例

当泛型类创建类型的新实例,请将 new 约束应用于类型参数,如下面的示例所示:

C# 复制代码
class ItemFactory<T> where T : new()
{
    public T GetNewItem()
    {
        return new T();
    }
}


当与其他约束一起使用时,new() 约束必须最后指定:

C# 复制代码
public class ItemFactory2<T>
    where T : IComparable, new()
{
}


有关更多信息,请参见类型参数的约束(C# 编程指南)

C# 语言规范

有关更多信息,请参见 C# 语言规范

  • 4.4.3 满足约束

  • 10.1.6 类型参数约束

请参见