更新 : 2007 年 11 月
エラー メッセージ
継承されたメンバ 'member1' および 'member2' には型 'type' に同じシグネチャがあるので、オーバーライドできません
このエラーは、ジェネリックが導入されたことに伴い発生します。通常、1 つのクラス内で、同じシグネチャを持つ 2 種類のメソッドを定義することはできません。しかし、ジェネリックを使用すると、特定の型でインスタンス化されたときに別のメソッドのように振る舞う、ジェネリック メソッドを指定できます。
使用例
C<int> をインスタンス化すると、F メソッドの 2 つのバージョンが同じシグネチャで作成されます。そのため、このメソッドをオーバーライドする D クラスでは、どちらのメソッドを優先すべきかを判断できません。
次の例では CS0462 エラーが生成されます。
// CS0462.cs
// compile with: /target:library
class C<T>
{
public virtual void F(T t) {}
public virtual void F(int t) {}
}
class D : C<int>
{
public override void F(int t) {} // CS0462
}