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

C# 扩展泛型类的类中的方法签名,c#,generics,inheritance,method-signature,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> 公共类存储库 { 公共字符串问候语(T) { 返回“嗨,我是”+t.ToString(); } } 扩展如下: public class R

如果我有这样一个泛型类:

public class Repository<T>
{
  public string Greeting(T t)
  {
    return "Hi, I'm " + t.ToString();
  }
}
public class FooRepository : Repository<Foo>
公共类存储库
{
公共字符串问候语(T)
{
返回“嗨,我是”+t.ToString();
}
}
扩展如下:

public class Repository<T>
{
  public string Greeting(T t)
  {
    return "Hi, I'm " + t.ToString();
  }
}
public class FooRepository : Repository<Foo>
公共类FooRepository:存储库
如果FooRepository有一个名为
问候语(Foo-Foo)
的方法,那么该方法是否与基类方法具有相同的签名(即隐藏或重写它),或者该方法是否被视为独立的


老实说,我有点困惑。

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

您测试过它吗?它编译了吗?有错误吗?我对Visual Studio所做的工作感到困惑,所以我想确定理论是什么。感谢您的澄清。