Compartir a través de


Error del compilador CS0460

Actualización: noviembre 2007

Mensaje de error

Las restricciones para métodos de reemplazo y de implementación de interfaz explícita se heredan del método base; por tanto, no se pueden especificar directamente
Constraints for override and explicit interface implementation methods are inherited from the base method, so they cannot be specified directly

Cuando un método genérico que forma parte de una clase derivada reemplaza un método de la clase base, no se pueden especificar restricciones en el método reemplazado. El método de reemplazo de la clase derivada hereda las restricciones del método de la clase base.

Ejemplo

El código siguiente genera el error CS0460.

// CS0460.cs
// compile with: /target:library
class BaseClass 
{
   BaseClass() { }
}

interface I
{
   void F1<T>() where T : BaseClass;
   void F2<T>() where T : struct;
   void F3<T>() where T : BaseClass;
}

class ExpImpl : I
{
   void I.F1<T>() where T : BaseClass {}   // CS0460
   void I.F2<T>() where T : class {}  // CS0460
}