new Constraint (C# Reference)


Updated: July 20, 2015

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

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.

For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.

C# Reference
C# Programming Guide
C# Keywords
Operator Keywords