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