Ler em inglês

Compartilhar via


Erro do Compilador CS0449

A restrição 'class' ou 'struct' deve vir antes de qualquer outra restrição

As restrições no parâmetro de tipo de um tipo genérico ou método devem ocorrer em uma ordem específica: class ou struct deve ser primeiro, se presente, então quaisquer restrições de interface e, finalmente, quaisquer restrições de construtor. Esse erro é causado pela restrição class ou struct que não aparece primeiro. Para resolver esse erro, reordene as cláusulas de restrição.

Exemplo

O exemplo a seguir gera CS0449.

C#
// CS0449.cs  
// compile with: /target:library  
interface I {}  
public class C4
{  
   public void F1<T>() where T : class, struct, I {}   // CS0449  
   public void F2<T>() where T : I, struct {}   // CS0449  
   public void F3<T>() where T : I, class {}   // CS0449  
  
   // OK  
   public void F4<T>() where T : class {}  
   public void F5<T>() where T : struct {}  
   public void F6<T>() where T : I {}  
}