0

如果我有这样的通用类:

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

扩展如下:

public class FooRepository : Repository<Foo>

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

老实说,我有点困惑。

4

1 回答 1

1

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

于 2010-09-30T08:41:42.367 回答