new Constraint (C# Reference)

The new constraint specifies that any type argument in a generic class declaration must have a public parameterless constructor. To use the new constraint, the type cannot be abstract.


Apply the new constraint to a type parameter when your generic class creates new instances of the type, as shown in the following example:

class ItemFactory<T> where T : new()
    public T GetNewItem()
        return new T();

When you use the new() constraint with other constraints, it must be specified last:

public class ItemFactory2<T>
    where T : IComparable, new()

For more information, see Constraints on Type Parameters (C# Programming Guide).

C# Language Specification

For more information, see the C# Language Specification.

  • 4.4.3 Satisfying constraints

  • 10.1.6 Type parameter constraints

See Also


C# Programming Guide


C# Keywords

Operator Keywords (C# Reference)

Generics (C# Programming Guide)


Other Resources

C# Reference