Restrição new (Referência em C#)new constraint (C# Reference)

A restrição new especifica que um argumento de tipo em uma declaração de classe genérica deve ter um construtor público sem parâmetros.The new constraint specifies that a type argument in a generic class declaration must have a public parameterless constructor. Para usar a restrição new, o tipo não pode ser abstrato.To use the new constraint, the type cannot be abstract.

Aplique a restrição new a um parâmetro de tipo quando uma classe genérica criar novas instâncias do tipo, conforme mostrado no exemplo a seguir:Apply the new constraint to a type parameter when a 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();
    }
}

Quando você usa a restrição new() com outras restrições, ela deve ser especificada por último:When you use the new() constraint with other constraints, it must be specified last:

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

Para obter mais informações, consulte Restrições a parâmetros de tipo.For more information, see Constraints on Type Parameters.

Você também pode usar a palavra-chave new para criar uma instância de um tipo ou como um modificador de declaração de membro.You can also use the new keyword to create an instance of a type or as a member declaration modifier.

Especificação da linguagem C#C# language specification

Para obter mais informações, confira a seção Restrições de parâmetro de tipo na Especificação da linguagem C#.For more information, see the Type parameter constraints section of the C# language specification.

Consulte tambémSee also