代码之家  ›  专栏  ›  技术社区  ›  David

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

  •  0
  • David  · 技术社区  · 14 年前

    如果我有这样的泛型类:

    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 回复  |  直到 14 年前
        1
  •  1
  •   Darin Dimitrov    14 年前

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