這是寫在這樣你應該返回從你的方法IList<T>
而不是List<T>
,但我無法找到任何真正的好理由。我一直在尋找的代碼,這樣做,然後調用代碼通常做兩件事情之一:
- 呼叫
new List<T>(returnedIList)
所以它可以使用列表 - 所有好的方法蒙上回
List<T>
所以它可以使用所有名單上的不錯方法
第一個是笨重的,第二個會拋出時(runtime)InvalidCastException
如果實現實際改變別的東西呢(這使得它完全小號 tupid)。
如果我使用List<T>
出於某種原因,有與IList<T>
的實現,我不能從List<T>
繼承然後我會建立錯誤,必須改變一些代碼來取代它。這可能不太可能,如果發生這種情況,修復的工作並不多。當然,不值得失去List<T>
的好處和/或不得不施放/新的List<T>
(Exists,Find等)讓他們回到這種不太可能的情況?
那麼,還有沒有其他的原因在那裏返回IList<T>
?
它不僅是「寫滿了所以」,這個問題已經被問及回答! – 2011-02-24 17:46:59
道歉 - 在3頁的結果後,我放棄了尋找 - 所以最近,「相關性」對我來說似乎有點小了!去與這個答案:http://stackoverflow.com/questions/400135/c-listt-or-ilistt/1522826#1522826; D – 2011-02-24 18:09:27
沒有道歉需要,SO搜索是有用的。我用Google在網站上搜索:stackoverflow.com!找到愚人節! – 2011-02-24 18:44:10