继承的成员“member1”和“member2”在类型“type”中具有相同的签名,因此不能重写这些成员
此错误是由于引入泛型而引起的。 正常情况下,类中的方法不能有两个具有相同签名的版本。 但是对于泛型,如果泛型方法使用某个特定的类型实例化,则可以指定一个可能与另一个方法重复的泛型方法。
当实例化 C<int>
时,将为方法 F
创建两个具有相同签名的版本,所以类 D
中的重写无法确定对哪个方法应用重写。
下面的示例生成 CS0462。
C#
// 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
}