Ler em inglês

Partilhar via


Erro do compilador CS0451

A restrição 'new()' não pode ser usada com a restrição 'struct'

Ao especificar restrições no tipo de um genérico, a new() restrição só pode ser usada com restrições de tipo de classe, restrições de tipo de interface, restrições de tipo de referência e restrições de parâmetro de tipo, mas não com restrições de tipo de valor.

Exemplo

O exemplo a seguir gera CS0451.

// CS0451.cs  
using System;  
public class C4
{  
   public void F4<T>() where T : struct, new() {}   // CS0451  
}  
  
// OK  
public class C5  
{  
   public void F5<T>() where T : struct {}  
}  
  
public class C6  
{  
   public void F6<T>() where T : new() {}  
}