2010-09-30 15 views
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)方法,不該方法與基類方法具有相同的簽名(即隱藏或覆蓋它),還是被認爲是單獨的?

我有點困惑,說實話。

+1

你測試過了嗎?它編譯了嗎?有錯誤嗎? – Oded 2010-09-30 08:41:49

+0

我對Visual Studio的工作感到困惑,所以我想確定理論是什麼。 – David 2010-09-30 08:49:17

回答

1

它隱藏了基本方法,編譯器會提醒你這個問題。如果要覆蓋它,則需要在基類中將其標記爲virtual,或者在派生類方法中使用new關鍵字來向編譯器指示您知道自己在做什麼以及隱藏是有意的。

+0

感謝您的澄清。 – David 2010-09-30 08:54:42

相關問題