Partager via


Erreur du compilateur CS0449

Mise à jour : novembre 2007

Message d'erreur

La contrainte 'class' ou 'struct' doit être placée avant toutes les autres contraintes
The 'class' or 'struct' constraint must come before any other constraints

Les contraintes sur le paramètre de type d'un type générique ou d'une méthode doivent se présenter selon un ordre spécifique : class ou struct doivent figurer en premier, le cas échéant, puis toutes les contraintes d'interface, et enfin toutes les contraintes de constructeur. Cette erreur est provoquée par le fait que la contrainte class ou la contrainte struct n'apparaît pas en premier. Pour corriger cette erreur, réorganisez les clauses de contraintes.

Exemple

L'exemple suivant génère l'erreur CS0449.

// 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 {}
}