Compartir a través de


Error del compilador CS0449

Actualización: noviembre 2007

Mensaje de error

Las restricciones 'class' o 'struct' deben ir antes que cualquier otra restricción
The 'class' or 'struct' constraint must come before any other constraints

Las restricciones del parámetro de tipo de un tipo o método genérico deben efectuarse en un orden concreto: primero class o struct si las hay; a continuación las restricciones de interfaz y, por último, las de constructor. Este error lo provoca una restricción class o struct que no aparece en primer lugar. Para resolverlo, reordene las cláusulas de restricción.

Ejemplo

El código siguiente genera el error 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 {}
}