扩展泛型类的类中的方法签名

时间:2010-09-30 08:38:32

标签: c# generics inheritance method-signature

如果我有这样的通用类:

public class Repository<T>
{
  public string Greeting(T t)
  {
    return "Hi, I'm " + t.ToString();
  }
}

扩展如下:

public class FooRepository : Repository<Foo>

如果FooRepository有一个名为Greeting(Foo foo)的方法,那么该方法是否与基类方法具有相同的签名(即隐藏或覆盖它),还是被认为是独立的?

说实话,我有点困惑。

1 个答案:

答案 0 :(得分:1)

它隐藏了基本方法,编译器会警告你。如果要覆盖它,则需要在基类中将其标记为virtual,或者在派生类方法中使用new关键字向编译器指示您知道自己在做什么以及隐藏是故意的。