【问题标题】:Method signatures in classes which extend a generic class扩展泛型类的类中的方法签名
【发布时间】:2010-09-30 08:38:32
【问题描述】:

如果我有这样的泛型类:

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

扩展如下:

public class FooRepository : Repository<Foo>

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

说实话,我有点困惑。

【问题讨论】:

  • 你测试了吗?它编译了吗?有错误吗?
  • 我对 Visual Studio 在做什么感到困惑,所以我想确定这个理论是什么。

标签: c# generics inheritance method-signature


【解决方案1】:

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

【讨论】:

  • 感谢您的澄清。
猜你喜欢
  • 1970-01-01
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多