如果我有这样的通用类:
public class Repository<T>
{
public string Greeting(T t)
{
return "Hi, I'm " + t.ToString();
}
}
扩展如下:
public class FooRepository : Repository<Foo>
如果FooRepository有一个名为Greeting(Foo foo)
的方法,那么该方法是否与基类方法具有相同的签名(即隐藏或覆盖它),还是被认为是独立的?
说实话,我有点困惑。
答案 0 :(得分:1)
它隐藏了基本方法,编译器会警告你。如果要覆盖它,则需要在基类中将其标记为virtual
,或者在派生类方法中使用new
关键字向编译器指示您知道自己在做什么以及隐藏是故意的。