Leer en inglés

Compartir a través de


Error del compilador CS0449

Las restricciones 'class' o 'struct' deben preceder a cualquier otra restricción

Las restricciones en el parámetro de tipo de un tipo o método genérico deben producirse en un orden específico: class o struct deben ir primero, si están presentes, después las restricciones de interfaz y finalmente las restricciones de constructor. Este error se ha provocado porque las restricciones class o struct no aparecen en primer lugar. Para resolver este error, reordene las cláusulas de restricción.

Ejemplo

El ejemplo siguiente genera la advertencia 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 {}  
}