我注意到其他開發者使用這種技術,但它總是困惑我。我決定今天上午進行調查,並遇到下列來到MSDN(從http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.100).aspx):類型參數約束是一個類
public class GenericList<T> where T : Employee
{
...
}
我們爲什麼要改用的類員工替換T的實例的這種方法嗎?對我來說,這似乎是一個可維護性的勝利。我可以理解,將接口限制爲包含來自不同繼承層次的類的方法,但繼承已經以更明顯的方式解決了上述問題,不是嗎?
這可能被認爲是一個錯誤,或者這會是一個錯誤'修復'這樣的代碼?
雖然這現在對我來說很有意義,我想我還是看到了這個方法當非通用方法更合適時可能會出現這種情況,這可能會使我的視野模糊到更爲可接受的用途。 – Sprague 2012-04-11 08:28:07
@sprague:你能舉個例子嗎?最好從lib? – 2012-04-11 08:44:41
@亨克霍爾特曼:可以說,會有類型參數是多餘的情況。這是一個例子,我最感興趣的是一個具有特定類的約束的類型參數的有效情況。我不想對這種情況做出判斷,直到我理解了這種情況(這一點,感謝你和其他人,我現在這樣做)。 – Sprague 2012-04-11 10:04:49