コンパイラ エラー CS0460

更新 : 2007 年 11 月

エラー メッセージ

オーバーライドおよび明示的なインターフェイスの実装メソッドの制約は、基本メソッドから継承されるので、直接指定できません

派生クラス内のジェネリック メソッドで、基本クラスのメソッドをオーバーライドするとき、オーバーライドしたメソッドに対して制約を指定することはできません。派生クラス内のオーバーライド メソッドは、その制約を基本クラスのメソッドから継承します。

使用例

次の例では 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
}