Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0460

Omezení pro přepsání a explicitní metody implementace rozhraní jsou zděděna ze základní metody, takže je nelze zadat přímo.

Pokud obecná metoda, která je součástí odvozené třídy přepíše metodu v základní třídě, není možné určit omezení pro přepsánou metodu. Metoda override v odvozené třídě dědí svá omezení z metody v základní třídě.

Příklad

Následující ukázka vygeneruje 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  
}