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).