Compartir a través de


Error del compilador CS0314

Actualización: noviembre 2007

Mensaje de error

El tipo 'tipo1' no se puede usar como parámetro de tipo 'nombre' en el tipo o método genérico 'nombre'. No hay conversión boxing ni conversión de parámetro de tipo de 'tipo1' a 'tipo2'.
The type 'type1' cannot be used as type parameter 'name' in the generic type or method 'name'. There is no boxing conversion or type parameter conversion from 'type1' to 'type2'.

Cuando un tipo genérico utiliza un parámetro de tipo restringido, la nueva clase también debe cumplir las mismas restricciones.

Para corregir este error

  • En el ejemplo siguiente, agregue where T : ClassConstraint a la clase B.

Ejemplo

El código siguiente genera el error CS0314:

// cs0314.cs
// Compile with: /target:library
public class ClassConstraint { }

public class A<T> where T : ClassConstraint
{ }

public class B<T> : A<T> //CS0314
{ }

// Try using this instead.
public class C<T> : A<T> where T : ClassConstraint
{ }

Vea también

Referencia

Restricciones de tipos de parámetros (Guía de programación de C#)