コンパイラ エラー 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
}