Leer en inglés

Compartir a través de


Error del compilador CS0460

Las restricciones para métodos de invalidación y de implementación de interfaz explícita se heredan del método base; por tanto, no se pueden especificar directamente

Cuando un método genérico que forma parte de una clase derivada invalida un método de la clase base, no se pueden especificar restricciones en el método invalidado. El método de invalidación de la clase derivada hereda las restricciones del método de la clase base.

Ejemplo

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